CSHTML文件中URL含@符号的报错问题求助
解决CSHTML中引入TensorFlow.js脚本的@符号冲突问题
以下是三种可行的解决办法,既能保留URL中必须的单个@符号,又能避免Razor引擎的解析错误:
方法1:使用@Html.Raw()输出原始字符串
利用Razor的Html.Raw()方法直接输出包含@符号的URL,绕过Razor对@的语法解析:
<script src="@Html.Raw("https://cdn.jsdelivr.net/npm/@tensorflow/tfjs")"></script>
Html.Raw()会将传入的字符串原封不动地渲染到页面,不会把@tensorflow识别为Razor代码。
方法2:动态创建script标签加载脚本
通过JavaScript动态生成script标签,完全绕开Razor对HTML属性的解析逻辑:
<script> const tfScript = document.createElement('script'); tfScript.src = 'https://cdn.jsdelivr.net/npm/@tensorflow/tfjs'; tfScript.async = true; // 可选,异步加载不阻塞页面 document.head.appendChild(tfScript); </script>
这种方式适合需要动态控制加载时机的场景,同时彻底避免了@符号的语法冲突。
方法3:用Razor变量拼接URL
先定义一个变量存储@符号,再通过Razor表达式拼接成完整URL:
@{ string atSymbol = "@"; } <script src="https://cdn.jsdelivr.net/npm/@(atSymbol)tensorflow/tfjs"></script>
@(atSymbol)会被Razor解析为输出变量值(即单个@),最终生成的URL符合CDN要求的格式。
内容的提问来源于stack exchange,提问作者FleaPea5021
相关产品推荐
相关产品推荐

