回到目錄 之前寫的一篇文章,主要針對View視圖,它可以放在N級目錄下,不必須非要在views/controller/action這種關係了,而在程式運行過程中,發現分頁視圖對本功能並不支持,原因很簡單,在RazorViewEngine有不同的屬於來修飾這兩個東西,對於View的查找,通過ViewL
之前寫的一篇文章,主要針對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安裝即可,邊頁面都不用做了,哈哈!