文章出處

回到目錄

之前寫的一篇文章,主要針對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安裝即可,邊頁面都不用做了,哈哈!

回到目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()