ASP.NET Core MVC通過(guò)IViewLocationExpander擴(kuò)展視圖搜索路徑的實(shí)現(xiàn)
IViewLocationExpander API
- ExpandViewLocations Razor視圖路徑,視圖引擎會(huì)搜索該路徑.
- PopulateValues 每次調(diào)用都會(huì)填充路由
項(xiàng)目目錄如下所示
創(chuàng)建區(qū)域擴(kuò)展器,其實(shí)我并不需要多區(qū)域,我目前只需要達(dá)到一個(gè)區(qū)域中有多個(gè)文件夾進(jìn)行存放我的視圖.
所以我通過(guò)實(shí)現(xiàn)IViewLocationExpander進(jìn)行擴(kuò)展添加我自定義視圖路徑規(guī)則即可正如下代碼片段
public class MyViewLocationExpander : IViewLocationExpander { public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations) { if (context.ControllerName != null && context.ControllerName.StartsWith("App")) { viewLocations = viewLocations.Concat( new[] { $"/Areas/sysManage/Views/App/{context.ControllerName}/{context.ViewName}{RazorViewEngine.ViewExtension}" }); return viewLocations; } if (context.AreaName != "sysManage") return viewLocations; viewLocations = viewLocations.Concat( new[] { $"/Areas/sysManage/Views/System/{context.ControllerName}/{context.ViewName}{RazorViewEngine.ViewExtension}" }); return viewLocations; } public void PopulateValues(ViewLocationExpanderContext context) { } }
在Startup.ConfigureServices 注冊(cè)
public void ConfigureServices(IServiceCollection services) { services.Configure<RazorViewEngineOptions>(o => { o.ViewLocationExpanders.Add(new MyViewLocationExpander()); }); services.AddMvc(); }
app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); endpoints.MapAreaControllerRoute( name: "sysManage", "sysManage", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); });
最終路由指向的還是
/SysManage/Controller/Action
到此這篇關(guān)于ASP.NET Core MVC通過(guò)IViewLocationExpander擴(kuò)展視圖搜索路徑的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)ASP.NET Core MVC 擴(kuò)展視圖搜索路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Asp.Net 生成靜態(tài)頁(yè)并實(shí)現(xiàn)分頁(yè)效果
Asp.Net 生成靜態(tài)頁(yè)并實(shí)現(xiàn)分頁(yè)效果的代碼,需要的朋友可以參考下。2010-04-04IIS 瀏覽aspx頁(yè)面出現(xiàn)無(wú)法顯示XML頁(yè)的解決方法分享
這篇文章介紹了IIS 瀏覽aspx頁(yè)面出現(xiàn)無(wú)法顯示XML頁(yè)的解決方法,有需要的朋友可以參考一下2013-11-11Asp.Net、asp實(shí)現(xiàn)的搜索引擎網(wǎng)址收錄檢查程序
這篇文章主要介紹了Asp.Net、asp實(shí)現(xiàn)的搜索引擎網(wǎng)址收錄檢查程序,即實(shí)現(xiàn)檢查一個(gè)網(wǎng)址是否被搜索引擎收錄功能的小程序,需要的朋友可以參考下2014-08-08asp.net MVC 在Controller控制器中實(shí)現(xiàn)驗(yàn)證碼輸出功能
這篇文章主要介紹了asp.net MVC 在Controller控制器中實(shí)現(xiàn)驗(yàn)證碼輸出功能,本文給大家介紹非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12用 Asp.Net 建立一個(gè)在線 RSS 新聞聚合器的方法
用 Asp.Net 建立一個(gè)在線 RSS 新聞聚合器的方法...2007-04-04VS2010發(fā)布Web網(wǎng)站技術(shù)攻略
本篇文章主要包含了完整的發(fā)布網(wǎng)站步驟、發(fā)布網(wǎng)站過(guò)程中可能遇到的問(wèn)題,以及配套的解決方法,相信感興趣的朋友一定會(huì)喜歡這篇文章的2015-07-07