ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
 更新时间:2020年04月07日 09:05:35   作者:HueiFeng  

这篇文章主要介绍了ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

IViewLocationExpander API

ExpandViewLocations Razor视图路径,视图引擎会搜索该路径.
PopulateValues 每次调用都会填充路由

项目目录如下所示

创建区域扩展器,其实我并不需要多区域,我目前只需要达到一个区域中有多个文件夹进行存放我的视图.
所以我通过实现IViewLocationExpander进行扩展添加我自定义视图路径规则即可正如下代码片段

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 注册

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

到此这篇关于ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现的文章就介绍到这了,更多相关ASP.NET Core MVC 扩展视图搜索路径内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:asp.net mvc webapi 实用的接口加密方法示例ASP.NET Core MVC解决控制器同名Action请求不明确的问题如何在Asp.Net Core MVC中处理null值的实现创建一个ASP.NET MVC5项目的实现方法(图文)ASP.NET Core MVC如何实现运行时动态定义Controller类型asp.net mvc core管道及拦截器的理解ASP.NET Core MVC获取请求的参数方法示例在ASP.NET Core Mvc集成MarkDown的方法ASP.NET Core MVC 中实现中英文切换的示例代码如何使用签名保证ASP.NET MVC OR WEBAPI的接口安全

ASP.NET
Core
MVC
视图
路径

相关文章
ASP.NET中利用DataList实现图片无缝滚动 实例分享这个问题之前也困扰我,后来解决了,拿出来分享下,以后用也方便,代码很容易看懂,不多说什么了 2013-06-06
.NET微信公众号客服接口这篇文章主要为大家详细介绍了.NET微信公众号客服接口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2016-10-10
asp.net DataSet转换成josn并输出示例如何将DataSet转换成josn并输出,这是很多新手朋友们遇到的问题,下面有个不错的示例,希望对大家有所帮助 2014-01-01
asp.net 1.1/ 2.0 中快速实现单点登陆asp.net 1.1/ 2.0 中快速实现单点登陆… 2007-04-04
.NET中利用js让子窗体向父页面传值的实现方法.NET中利用js让子窗体向父页面传值的实现方法,需要的朋友可以参考一下 2013-02-02
ASP.NET Core3.1 Ocelot路由的实现这篇文章主要介绍了ASP.NET Core3.1 Ocelot路由的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 2020-11-11
.net SMTP发送Email实例(可带附件)本文为大家详细介绍下.net SMTP发送Email同时可带附件的具体实现思路及代码,想实现的朋友可以参考下哈,希望对大家有所帮助 2013-07-07
.net socket客户端实例代码分享这篇文章主要介绍了.net写的socket客户端,下面有使用方法,大家参考使用吧 2013-12-12
repeater、gridview 在绑定时判断判断显示不同的行样式或文本repeater、gridview 在绑定时判断判断显示不同的行样式或文本的实现代码,需要的朋友可以参考下。 2011-09-09
asp.net字符串分割函数使用方法分享这篇文章主要介绍了asp.net字符串分割函数使用方法,需要的朋友可以参考下 2014-02-02

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。