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

VS2022 v17.7中.NET4.8项目CSHTML不识别@@转义语法问题

.NET 4.8项目CSHTML中@@转义@符号无效的解决办法

@@转义@符号并非.NET Core专属特性,ASP.NET Framework(包括.NET 4.8)的Razor视图同样支持该语法。针对你遇到的问题,可以从以下几个方向排查:

  • 检查项目Razor配置
    打开项目根目录的Web.config,确认<system.web.webPages.razor>节点配置正确,确保引用了对应版本的Razor和MVC程序集。例如MVC 5.2.7版本的配置示例:

    <system.web.webPages.razor>
      <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
          <add namespace="System.Web.Mvc" />
          <add namespace="System.Web.Mvc.Ajax" />
          <!-- 其他命名空间引用 -->
        </namespaces>
      </pages>
    </system.web.webPages.razor>
    

    同时确认<compilation>节点下包含Razor相关程序集的引用:

    <compilation debug="true" targetFramework="4.8">
      <assemblies>
        <add assembly="System.Web.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <!-- 其他必要程序集 -->
      </assemblies>
    </compilation>
    
  • 修复Visual Studio智能感知问题
    很多时候是编辑器的IntelliSense误报,而非语法本身不支持:

    • 删除项目的bin、obj文件夹,清理后重新生成项目
    • 关闭Visual Studio,删除项目根目录下的隐藏.vs文件夹,重启VS后重新加载项目
    • 通过「编辑 → IntelliSense → 刷新本地缓存」重置智能感知
  • 确认Razor语法上下文
    在Razor视图中,不同场景下输出@符号的方式略有区别:

    • 在HTML文本区域,直接使用@@即可转义为单个@符号
    • 在C#代码块(@{ ... })中,若要输出@符号,可使用@Html.Raw("@")或字符串转义@"@"

内容的提问来源于stack exchange,提问作者Steve McNiven-Scott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:42:39