愛上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安裝即可,邊頁面都不用做了,哈哈!

回到目錄


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com