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

.NET 8中Razor命名空间重复定义错误的解决方法

解决.NET 8中_ViewImports.cshtml的“Razor命名空间已包含template定义”错误

排查与修复步骤

  • 清理_ViewImports.cshtml的重复导入
    打开_ViewImports.cshtml文件,检查是否重复导入了Asp.Versioning.Mvc.Razor相关命名空间,比如出现两次@using Asp.Versioning.Mvc.Razor。重复导入会触发命名空间内类型的冲突检测,直接删除重复的导入语句即可。

  • 清空编译缓存并重新还原依赖

    1. 手动删除项目根目录下的bin和obj文件夹,彻底清理本地编译生成的缓存文件。
    2. 在终端执行dotnet clean命令完成项目清理,再运行dotnet restore重新还原所有NuGet依赖,确保Asp.Versioning.Mvc包与.NET 8框架版本兼容。
  • 排查隐式命名空间冲突
    即便没有自定义Razor命名空间,第三方包或自动生成的代码也可能无意中占用Razor.Template类名:

    • 在IDE中使用“查找所有引用”功能,搜索Template类型,查看是否有定义在Razor命名空间下的非自定义类。
    • 检查obj文件夹下的Razor编译生成文件,若存在冲突的自动生成类,清理后重新编译项目。
  • 检查API版本控制服务的重复注册
    打开Program.cs,确认API版本控制的Razor支持只注册了一次,避免重复注入导致的类型冲突:

    builder.Services.AddApiVersioning()
        .AddMvc()
        .AddRazorSupport(); // 确保仅调用一次AddRazorSupport()
    
  • 更新Asp.Versioning.Mvc到最新稳定版
    旧版本的Asp.Versioning.Mvc可能存在与.NET 8 Razor编译系统的兼容性问题,通过NuGet包管理器将Asp.Versioning.Mvc和Asp.Versioning.Mvc.Razor更新到最新稳定版本,再重新编译项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:22:03