爱上MVC~在Views的多级文件夹~续~分部页的支持

回到目录

之前写的一篇文章,主要针对View视图,它可以放在N级目录下,不必须非要在views/controller/action这种关系了,而在程序运行过程中,发现分页视图对本功能并不支持,原因很简单,在RazorViewEngine有不同的属于来修饰这两个东西,对于View的查找,通过ViewLocationFormats来定义,而分部视图的查找通过PartialViewLocationFormats来定义,它们定义了视图的查询范围,如~/Views/LindAdmin/{1}/{0}.cshtml就可以表示在Views下面的LindAdmin下的目录。

对于分部页的多级目录结构

  /// <summary>
    /// 后台路由
    /// </summary>
    public class admin_routing : RazorViewEngine
    {
        public admin_routing()
        {
            //视图位置
            ViewLocationFormats = new[]
            {
              "~/Views/{1}/{0}.cshtml",
                "~/Views/LindAdmin/{1}/{0}.cshtml"//自定义汽车销售的试图
            };

            //分部视图位置
            PartialViewLocationFormats = new[]
            {
              "~/Views/{1}/{0}.cshtml",
                "~/Views/LindAdmin/{1}/{0}.cshtml"//自定义汽车销售的试图
            };
        }

        public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
        {
            return base.FindView(controllerContext, viewName, masterName, useCache);
        }

        public override ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache)
        {
            return base.FindPartialView(controllerContext, partialViewName, useCache);
        }
    }

我们通过上面的代码看到了FindView和FindPartialView两个方法,它们就是在渲染视图时的查找方法,即你的action要去渲染哪个视图,我们可以把自己的逻辑重写在这两个

方法里!

看一下大家的通用后台项目,将后台的一些View都放到了LindAdmin里,而这也是为了打包考虑的,以后哪个具体的项目希望用后台,直接NUGET安装即可,边页面都不用做了,哈哈!

回到目录

时间: 2024-10-16 08:53:31

爱上MVC~在Views的多级文件夹~续~分部页的支持的相关文章

爱上MVC~在Views的多级文件夹

回到目录 在MVC里,你的控制器对应的视图一般是在Views目录,而如果希望在Views里再分几个模块文件夹默认是不允许的,我们需要做一下设置,就可以实现Views下的多次文件夹层次了,例如,我们有产品模块,用户模块,订单模块,我们就可以把它的文件夹结构设计成如下 用户模块:/views/UserModel/UserCenter/Index,其中UserModel是模块名称,usercenter是控制器名称,而index是action名称 产品模块:/views/ProductModel/Pro

Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

1. 复制多级文件夹的案例 需求:复制多级文件夹   数据源:E:\JavaSE\day21\code\demos 目的地:E:\   分析:         A:封装数据源File         B:封装目的地File         C:判断该File是文件还是文件夹        a:是文件夹 就在目的地目录下创建该文件夹 获取该File对象下的所有文件或者文件夹File对象 遍历得到每一个File对象 回到C                     b:是文件             

建立多级文件夹

// 创建多级文件夹 public static String addFilePath(String path) throws Exception { Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR); int month = c.get(Calendar.MONTH) + 1; int date = c.get(Calendar.DATE); int hour = c.get(Calendar.HOUR_O

用Java实现将多级文件夹下的所有文件统一放到一个文件夹中

每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了一个小工具. 以下代码只实现了把多级文件夹下的所有文件复制到一个文件夹中,如果需要指定复制文件的格式,可以在1111处添加一个判断.如果需要同时删除原文件夹可以在添加一个递归删除的方法. package Bao; import java.io.BufferedInputStream;import j

利用Java IO复制多级文件夹

package package1; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Copy {         private static File newDest = null;         private static FileInputStream fis = null;    

asp.net mvc 多级文件夹

ASP.NET MVC - 定制属于你自己的ViewEngine 标签: asp.netmvcstring引擎razorapplication 2012-07-26 14:17 5365人阅读 评论(0) 收藏 举报  分类: ASP.NET(12)  版权声明:本文为博主原创文章,未经博主允许不得转载. ASP.NET MVC出来这么久了,心中却又很多的疑惑:为什么所有的View都要放在Views目录下? 为什么Shared文件夹下面的页面可以被共享? 为什么Page既可以是*.cshtml,

測试加入多级文件夹篇

文件夹1 水电费士大夫士大夫士大夫士大夫 文件夹2 水电费士大夫士大夫士大夫士大夫 文件夹3 水电费士大夫士大夫士大夫士大夫 文件夹4 水电费士大夫士大夫士大夫士大夫 文件夹5 水电费士大夫士大夫士大夫士大夫 文件夹6 水电费士大夫士大夫士大夫士大夫 文件夹7 水电费士大夫士大夫士大夫士大夫 文件夹8 水电费士大夫士大夫士大夫士大夫 文件夹9 水电费士大夫士大夫士大夫士大夫 文件夹10

复制多级文件夹

package copydir; import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream; /* * 复制文件夹 * 分析: * 1:目录下包含有目录和文件. * 2:用递归

IO流的练习3 复制多级文件夹下的指定文件并改名

需求:复制指定目录下的指定文件,并修改后缀名. 指定的文件是:.java文件. 指定的后缀名是:.jad 数据源所在文件夹:C:\Users\Administrator\Desktop\记录 目的地所在文件夹:C:\Users\Administrator\Desktop\新建文件夹\copy 分析: A:封装数据源的目录 B:封装目的地的目录 判断路径下的文件是否是文件夹 是:在目的文件夹下创建该文件, 获取数据源所在文件夹的所有文件的File数组 遍历File数组,得到每个文件的File对象