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

.NET 7中Area视图存在却找不到,仅RuntimeCompilation模式可用

问题根源与解决方案

核心原因

你的项目.csproj文件存在错误配置:你将视图文件从Content类型移除,并标记为None类型。

在ASP.NET Core中:

  • 启用AddRazorRuntimeCompilation()时,系统直接读取源码目录中的视图文件,所以能正常找到;
  • 但在生产环境或移除该配置后,系统依赖构建过程中被标记为Content的文件(这类文件会被复制到输出目录或嵌入程序集),而标记为None的文件不会被包含到构建输出中,因此运行时找不到视图。

从你的.csproj可以看到,Areas\BackOffice\Views\Users\Index.cshtml正好被包含在错误配置里:

<Content Remove="Areas\BackOffice\Views\Users\Index.cshtml" />
<Watch Remove="Areas\BackOffice\Views\Users\Index.cshtml" />
<None Include="Areas\BackOffice\Views\Users\Index.cshtml" />

解决步骤

  1. 打开项目的.csproj文件,删除以下所有相关节点:

    • 包含<Content Remove>的整个<ItemGroup>
    • 包含<Watch Remove>的整个<ItemGroup>
    • 包含<None Include>的整个<ItemGroup>
  2. 保留默认文件配置即可,ASP.NET Core Web项目会自动将Views目录下的.cshtml文件识别为Content类型,无需手动配置。

  3. 清理项目(右键项目 → 清理),然后重新构建、发布。

额外验证

你的Area路由配置是正确的:

  • 控制器标记了[Area("BackOffice")]
  • 默认路由模板{area=Reporting}/{controller=Reports}/{action=Index}/{id?}支持多Area路由
    错误提示已经在搜索/Areas/BackOffice/Views/Users/Index.cshtml,说明路由逻辑正常,问题确实出在文件构建配置上。

内容的提问来源于stack exchange,提问作者Korpin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 09:58:13