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

为何MVC Core 2项目突然所有Razor视图出现编译异常?

解决ASP.NET Core 2视图编译“预处理指令名称无效”错误

这个问题我在维护ASP.NET Core 2项目时遇到过好几次,大概率是你修改Explorer.cshtml时不小心搞砸了Razor预处理指令的写法,或者引入了无效的指令。给你几个实用的排查和解决步骤:

  • 检查视图中的Razor预处理指令
    打开Explorer.cshtml,仔细排查有没有拼写错误、格式不对的预处理指令。Razor支持的标准指令是#if、#else、#endif、#define这类,要是你不小心写成#iff、#invalid这种未被识别的指令,或者把指令和@符号的配合搞混(比如写成#@if),就会触发这个编译错误。另外还要注意指令是否完整闭合,比如写了#if就必须有对应的#endif。

  • 清理项目编译缓存
    ASP.NET Core有时候会残留旧的编译缓存,导致修改后的代码没被正确编译。按这个流程操作:

    1. 右键项目,选择清理
    2. 删除项目根目录下的bin和obj文件夹
    3. 重启你的开发工具(Visual Studio或其他),然后重新生成项目
  • 排查视图中的格式或特殊字符问题
    有时候不小心在指令附近添加了多余的空格、特殊字符,或者注释格式错误,也会让编译器误以为是无效的预处理指令。比如在指令行末尾加了奇怪的符号,或者用了中文的标点符号,都可能引发问题。

  • 确认项目的Razor编译配置
    打开项目的.csproj文件,检查有没有MvcRazorCompileOnPublish、RazorCompileOnBuild这类配置项。如果之前运行正常,这个出错的概率不高,但可以确认这些配置的取值是否合理(比如是true还是false),有没有被误修改。

要是按上面的步骤还是没解决,建议你把Explorer.cshtml最近修改的代码片段贴出来,这样能更精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:16:00