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

如何在MVC Razor模板的script标签src属性中拼接C#变量?

在MVC Razor中正确拼接变量到Script的Src属性里

嘿,这个问题我熟!你原来的写法之所以没生效,是因为在Razor的代码块(@{ })里直接写HTML标签的话,里面的@clientId不会被自动解析成变量值。给你两种靠谱的解决办法:

方法一:拆分代码块与HTML标签(推荐)

这种写法更符合Razor的语法规范,可读性也更强:

@{ 
    string clientId = "1234567"; 
}
<script id="AbcClient" src="https://myspecialjs/@clientId/client.js" type="text/javascript" async></script>

原理很简单:把变量定义放在代码块里,然后在代码块外的HTML标签中,Razor会自动识别@clientId并替换成对应的变量值,完美完成拼接。

方法二:在代码块内用Html.Raw构建输出

如果因为某些原因你必须在代码块内部输出这个script标签,可以用Html.Raw()方法来拼接字符串并输出HTML:

@{ 
    string clientId = "1234567"; 
    // 使用字符串插值(C# 6+支持)
    @Html.Raw($"<script id='AbcClient' src='https://myspecialjs/{clientId}/client.js' type='text/javascript' async></script>");
}

或者如果你用的是更早的C#版本,也可以用string.Format来拼接:

@{ 
    string clientId = "1234567"; 
    @Html.Raw(string.Format("<script id='AbcClient' src='https://myspecialjs/{0}/client.js' type='text/javascript' async></script>", clientId));
}

这里的Html.Raw()会告诉Razor引擎直接输出拼接好的HTML内容,而不是转义成文本。

内容的提问来源于stack exchange,提问作者I Love Stackoverflow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:38:12