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

如何阻止Razor Pages将脚本URL中的@符号识别为C#调用?

解决ASP.NET Core Razor Pages中Bootstrap Popper URL的@解析问题

在Razor Pages中,@是C#代码块的起始标记,因此URL中的@popperjs会被引擎误认为是C#方法调用,导致解析错误。以下是几种可行的解决方式:

  • 使用HTML实体替代@符号
    将URL中的第一个@替换为HTML实体@,Razor引擎会将其解析为普通的@字符,不会触发代码解析:

    <script src="https://cdn.jsdelivr.net/npm/&#64;popperjs/core@2.11.6/dist/umd/popper.min.js"
            integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous">
    </script>
    
  • 用@Html.Raw()输出URL
    通过Razor的@Html.Raw()方法直接输出完整的URL字符串,强制引擎不解析其中的@符号:

    <script src="@Html.Raw("https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js")"
            integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous">
    </script>
    
  • 迁移脚本引用到布局文件
    将Bootstrap和Popper的脚本引用统一放到布局文件(如_Layout.cshtml)中,这样既避免了单个页面的解析问题,也能实现多页面复用资源的目的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 03:38:13