如何在Razor视图的src属性中渲染两个变量?(.NET 6)
问题原因
你遇到的问题是Razor视图引擎没有正确解析@GetToken()作为服务器端方法调用,而是将其当作普通文本输出。这是因为在属性值的字符串中,Razor对连续的@表达式识别规则有限——第一个@ImageServer会被正常解析,但后续的@GetToken()因为紧跟在已解析的变量文本之后,引擎没有将其判定为需要执行的服务器端代码。
解决方案
可以通过两种方式正确拼接两个变量/方法结果:
方法1:使用字符串插值(推荐)
利用C#的字符串插值语法,将整个拼接逻辑放在@()中,让Razor完整解析表达式:
<img src="@($"{ImageServer}/images/BG.png{GetToken()}")" />
方法2:直接字符串拼接
通过C#的字符串拼接运算符+,将各部分组合后用@()包裹:
<img src="@(ImageServer + "/images/BG.png" + GetToken())" />
两种写法都会让Razor正确执行GetToken()方法,并将结果与ImageServer的值拼接后输出到src属性中。
内容的提问来源于stack exchange,提问作者Melon NG
相关产品推荐
相关产品推荐

