Blazor Server中razor页面变量后追加三个点静态文本如何避免编译报错
问题原因
Razor解析器默认会将@str1后紧跟的第一个点识别为C#的成员访问操作符,尝试匹配str1对应的类型成员,因此触发编译错误。
最简解决方案
只需要给变量包裹显式Razor表达式语法(括号)即可,无需修改原变量,也不需要额外加DOM标签:
@if (condition) { @(str1)... }
@()会明确告诉Razor解析器,括号内的内容才是需要计算的C#表达式,括号外的三个点会被直接作为静态文本输出,最终渲染效果就是你需要的test...。
其他可选实现方式
如果有其他场景需求,也可以选择以下两种写法,效果完全一致:
- 用Razor专属的
<text>隐式文本标签包裹三个点,该标签不会渲染到最终的HTML中:@if (condition) { @str1<text>...</text> } - 在表达式内直接拼接字符串,不会修改原变量的值:
@if (condition) { @(str1 + "...") }
内容的提问来源于stack exchange,提问作者Bob5421
相关产品推荐
相关产品推荐

