You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:15:03