如何阻止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/@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
相关产品推荐
相关产品推荐

