Asp.Net Core中如何调用其他文件夹中的View
解决ASP.NET Core中自定义视图文件夹找不到视图的问题
方法一:直接指定视图路径
修改HomeController中的AppMessages方法,明确返回视图的完整路径:
public IActionResult AppMessages() { // 若VLA文件夹在Views根目录下 return View("~/Views/VLA/AppMessages.cshtml"); // 若VLA文件夹在Views/Home目录下,使用以下路径 // return View("~/Views/Home/VLA/AppMessages.cshtml"); }
方法二:全局配置视图搜索路径
如果后续有大量视图需要放在自定义文件夹,可全局配置视图引擎的搜索位置,避免每个方法重复指定路径:
在Program.cs(.NET 6+)中,找到添加MVC服务的代码,添加Razor视图选项配置:
builder.Services.AddControllersWithViews(options => { // 添加自定义视图位置规则:{1}代表控制器名,{0}代表视图名 // 适配VLA在Home文件夹下的情况 options.ViewLocationFormats.Add("/Views/{1}/VLA/{0}.cshtml"); // 若VLA在Views根目录,添加这条规则 // options.ViewLocationFormats.Add("/Views/VLA/{0}.cshtml"); });
配置完成后,HomeController中的方法会自动去对应自定义文件夹查找视图,无需手动指定路径。
额外注意事项
确保你的.cshtml视图文件的复制到输出目录属性设置为「如果较新则复制」或「始终复制」,防止视图文件未被正确部署到运行环境。
内容的提问来源于stack exchange,提问作者GuidoG
相关产品推荐
相关产品推荐

