ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径
2021-03-22 20:25
标签:ext map 项目 str value lang 自定义 ref ice
IViewLocationExpander API 项目目录如下所示 创建区域扩展器,其实我并不需要多区域,我目前只需要达到一个区域中有多个文件夹进行存放我的视图. 所以我通过实现IViewLocationExpander进行扩展添加我自定义视图路径规则即可正如下代码片段
)
{
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)
{
}
}
public class MyViewLocationExpander : IViewLocationExpander
{
public IEnumerablestring> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerablestring> viewLocations
在Startup.ConfigureServices 注册
public void ConfigureServices(IServiceCollection services)
{
services.Configure(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
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径
标签:ext map 项目 str value lang 自定义 ref ice
原文地址:https://www.cnblogs.com/lonelyxmas/p/12696001.html
下一篇:命令 netstat
文章标题:ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径
文章链接:http://soscw.com/index.php/essay/67658.html