ASP.NET Core 6 MVC运行时提示index.cshtml不存在但文件实际存在
.NET 6.0 应用运行时找不到index.cshtml文件的排查与解决
问题描述
在Visual Studio 2022中创建新的.NET 6.0 MVC应用,运行默认的HomeController时抛出运行时异常,提示index.cshtml未找到,但该文件确实存在于Views文件夹中。
相关截图
现有代码
Program.cs
var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllersWithViews(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();
HomeController.cs
using Microsoft.AspNetCore.Mvc; using System.Diagnostics; using WebApplication3.Models; namespace WebApplication3.Controllers { public class HomeController : Controller { private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } public IActionResult Index() { return View(); } public IActionResult Privacy() { return View(); } [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] public IActionResult Error() { return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); } } }
排查与解决步骤
1. 检查视图路径与命名规范
- 确认
index.cshtml位于Views/Home目录下,MVC默认约定视图路径为Views/[控制器名]/[动作名].cshtml,不能直接放在Views根目录。 - 核对文件名大小写:保证文件名为
Index.cshtml(首字母大写,与Action方法名Index一致),避免跨环境部署时出现大小写不匹配问题。
2. 调整视图文件的属性设置
在Visual Studio中右键点击index.cshtml,选择【属性】,将【复制到输出目录】设置为【如果较新则复制】或【始终复制】。若设置为【不复制】,编译后文件不会输出到bin目录,导致运行时无法找到。
3. 清除缓存并重新生成项目
- 点击菜单【生成】→【清理解决方案】
- 手动删除项目目录下的
bin和obj文件夹,清除编译缓存 - 点击【生成】→【重新生成解决方案】,再启动项目
4. 验证视图引擎配置(可选)
确认builder.Services.AddControllersWithViews()已正确注册,这行代码负责添加MVC视图引擎服务。若问题仍存在,可显式配置视图路径:
builder.Services.AddControllersWithViews(options => { options.ViewLocationFormats.Add("/Views/{1}/{0}.cshtml"); });
其中{1}代表控制器名,{0}代表动作名,此为默认视图寻址格式,添加后可确保视图引擎正确定位文件。
5. 核对命名空间一致性
确保控制器的命名空间WebApplication3.Controllers与项目根命名空间一致,避免视图引擎因命名空间不匹配无法找到对应视图。
内容的提问来源于stack exchange,提问作者Srikanth Reddy
相关产品推荐
相关产品推荐

