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

ASP.NET Core 8 MVC迁移后视图编译报错,脚手架异常求助

ASP.NET Core 3.1迁移至8.0视图编译错误排查方案
  • 检查视图的@namespace指令
    ASP.NET Core 3.0+的Razor视图会默认根据文件路径生成命名空间,哪怕你没有Pages文件夹,也可能因为复制文件时带了旧的@namespace指令,或者新项目的默认配置自动加了Pages前缀。打开报错的视图文件,看顶部有没有@namespace Samadhi.Pages.Samadhi这类错误指令,改成你实际的命名空间(比如@namespace Samadhi)。要是多个视图都有这问题,直接在根目录的_ViewImports.cshtml里统一加@namespace Samadhi覆盖默认值。

  • 修正.csproj的Razor配置
    新项目可能默认启用了基于文件路径的命名空间生成,导致错误映射。打开项目的.csproj文件,在PropertyGroup里添加<RazorNamespace>Samadhi</RazorNamespace>指定统一的Razor命名空间,示例配置:

    <PropertyGroup>
      <TargetFramework>net8.0</TargetFramework>
      <RazorCompileOnBuild>true</RazorCompileOnBuild>
      <RazorNamespace>Samadhi</RazorNamespace>
    </PropertyGroup>
    
  • 确保_ViewImports.cshtml引用了Models命名空间
    视图找不到模型大概率是没正确引用命名空间。在_ViewImports.cshtml里加上@using Samadhi.Models(根据你的实际命名空间调整),这样所有视图都能直接访问模型类,不用写完整路径。

  • 手动清理编译缓存
    有时候旧的缓存文件会搞事情,直接删了项目下的bin和obj文件夹,再重新生成项目;或者在终端跑dotnet clean && dotnet build命令,彻底清理后重建。

  • 检查模型类的访问修饰符
    如果模型类是internal的,Razor编译后的程序集可能访问不到。把所有模型类改成public修饰符,比如public class YourModel { ... }。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:52:16