ASP.NET MVC中如何在锚标签href内使用@符号?
解决ASP.NET MVC Razor视图中社交媒体链接的@符号解析错误
错误原因
Razor引擎会自动把@开头的内容识别为服务器端变量或表达式,你代码里的@techiewords被当成了未定义的Razor变量,所以触发编译错误。
解决方法
以下几种方式都能解决这个问题:
- 方法一:直接转义@符号
在URL里的@前面再加一个@,让Razor解析后输出单个@:
<li><a class="youtube" href="https://youtube.com/@@techiewords" target="_blank"><i class="fab fa-youtube"></i></a></li>
如果之前这么写没生效,检查代码是否处于Razor代码块(如@{...})中,确保是在纯HTML或Razor视图的静态内容区域。
- 方法二:使用Html.Raw输出静态HTML
用Html.Raw包裹整个链接片段,让Razor跳过对内部内容的解析:
<li>@Html.Raw("<a class='youtube' href='https://youtube.com/@techiewords' target='_blank'><i class='fab fa-youtube'></i></a>")</li>
- 方法三:Razor字符串拼接输出
通过Razor的字符串表达式输出包含@的URL部分:
<li><a class="youtube" href="https://youtube.com/@("@techiewords")" target="_blank"><i class="fab fa-youtube"></i></a></li>
这里括号内的@techiewords会被作为纯字符串输出,不需要额外转义。
内容的提问来源于stack exchange,提问作者Rajkumar
相关产品推荐
相关产品推荐

