爱上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安装即可,边页面都不用做了,哈哈!
aaarticlea/png;base64,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" alt="" />
爱上MVC~在Views的多级文件夹~续~分部页的支持的更多相关文章
- 爱上MVC~在Views的多级文件夹
回到目录 在MVC里,你的控制器对应的视图一般是在Views目录,而如果希望在Views里再分几个模块文件夹默认是不允许的,我们需要做一下设置,就可以实现Views下的多次文件夹层次了,例如,我们有产 ...
- Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例
1. 复制多级文件夹的案例 需求:复制多级文件夹 数据源:E:\JavaSE\day21\code\demos 目的地:E:\ 分析: A:封装数据源File ...
- 用Java实现将多级文件夹下的所有文件统一放到一个文件夹中
每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了 ...
- bat如何创建多级文件夹(在android设备中)
在android设备中要创建多个或者多级文件夹时,手动去创建费时费力(有点傻),一个bat文件就能很好的实现这个功能. 1.首先创建同级多个文件夹且在该文件夹下生成一个文件 @echo off ech ...
- java中递归实现复制多级文件夹
常见的流的用法 递归实现复制多级文件夹 FileInputStream & FileOutputStream String content = null;//用来储存解码后的byte数组 in ...
- Eclipse 批量创建多级文件夹
Eclipse 批量创建多级文件夹 CreateTime--2018年3月8日08:23:24 Author:Marydon 1.选中要建立文件夹的父级目录-->右键-->New--& ...
- ZIP解压缩文件的工具类【支持多级文件夹|全】
ZIP解压缩文件的工具类[支持多级文件夹|全] 作者:Vashon 网上有非常多的加压缩演示样例代码.可是都仅仅是支持一级文件夹的操作.假设存在多级文件夹的话就不行了. 本解压缩工具类经过多次检查及重 ...
- IO流案例:1.复制多级文件夹 2.删除多级文件夹
package copy; /* 需求:复制多级文件夹 复制d:\\itcast(包含文件和子文件夹)到模块目录下 分析: d:\\itcast a.txt b.txt javaweb a.xml b ...
- cmd 命令操纵文件管理器、创建(删除)多级文件夹
命令行打开文件夹窗口的六种方法 1. 使用 start 命令 # 打开指定文件夹 > start 路径 # 打开当前文件夹 > start . # 打开含空格文件夹 > start ...
随机推荐
- JSF中使用jquery拦截ajax请求
jsf提供一个内置的jsf.ajax.request方法给我们使用,如果在jquery中使用,则需要做一些更改. 此处因为使用jquery,所以可以不必在控件中添加onclick方法了,可以给控件配 ...
- isee - 创建项目 - 1
1.在本地web目录下创建一个新项目 D:\web> composer create-project laravel/laravel isee --prefer-dist 2.在vhosts.c ...
- System.Web.Mvc.UrlHelper的学习与使用
我们学习一下UrlHelper帮助类,看类名也都知道这个类是用来帮我们生成URL在ASP.NET MVC应用程序中.让我们来看看该类给我们带来了哪些方便的方法和属性,UrlHelper提供了四个非常常 ...
- iOS后台定位时授权提示一闪而过的解决办法
今天做后台定位时,授权提示"允许 XXX 在您并未使用该应用时范文您的位置吗?"总是一闪而过,点不到,或者压根就不弹出.后来找到了解决问题的方法,那就是:将CLLocationMa ...
- python socket server源码学习
原文请见:http://www.cnblogs.com/wupeiqi/articles/5040823.html 这里就是自己简单整理一下: #!/usr/bin/env python # -*- ...
- 如何运用boolean跳出循环
用布尔类型跳出循环:1.首先申明一个布尔变量:boolean y =false:申明位置在:方法内,循环外:public void s(){//在此申明布尔变量:for(){}}if(!y){}2,进 ...
- JAVA 求和程序
- Jquery的multifile使用随记
1.多文件上传: 2.如上几个验证不重复,和限制上传数量的验证显示的是英文,改成中文文本时,如果不用国标解码,到时候提示框会出现乱码现象.所以一般需要中文显示的时候,我们应该这样做: 拿denied做 ...
- ABP框架详解(六)Aspects
这种AOP式的设计非常类似于Asp.net MVC和WebApi中过滤器(Filter)机制,感觉没有太多可讲述的,只能谈谈设计思路. 框架中AspectAttribute特性用于设置到需要被拦截的T ...
- MySQL数据库有外键约束时使用truncate命令的办法
MySQL数据库操作中,Delete与Truncate两个命令都可以删除一个数据表中的全部数据,使用办法分别是: DELETE FROM t_question TRUNCATE TABLE t_que ...