.NET Core 7视图组件全局配置:修改视图存放结构
.NET Core 7 全局配置视图组件视图路径
实现方案
可以通过全局配置修改视图组件的视图查找规则,不用逐个组件修改Invoke方法。具体步骤如下:
1. 配置视图查找路径模板
在Program.cs的服务配置段,添加对ViewComponentOptions的自定义配置:
builder.Services.Configure<ViewComponentOptions>(options => { // 把自定义路径模板插在最前面,让框架优先查找 options.ViewLocationFormats.Insert(0, "/Pages/Components/{0}.cshtml"); // 可选:保留原有默认路径模板,兼容旧结构(如果需要的话) // 默认模板是 "/Pages/Components/{0}/Default.cshtml" });
这里的{0}会自动替换为视图组件的名称(比如Component1、Component2),框架会据此匹配对应的.cshtml文件。
2. 调整视图文件位置
把原来/Pages/Components/Component1/Default.cshtml这类文件,直接移动到/Pages/Components/目录下,并重命名为Component1.cshtml,其他组件照此操作即可。
3. 简化组件的Invoke方法
之前你在Invoke里写的return View("Component1")可以删掉,直接用return View(),框架会通过全局配置的路径自动找到对应的视图。
效果说明
配置完成后,调用视图组件时,框架会优先按你设置的路径查找视图文件,找不到才会去默认路径(如果保留了默认模板)。这样就实现了所有视图组件的视图文件统一放在Components文件夹下,不用按组件分目录的需求。
内容的提问来源于stack exchange,提问作者Miguel Moura
相关产品推荐
相关产品推荐

