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

Razor如何区分@符号的变量引用与字面量两种使用场景?

Razor中@符号两种用法的区分逻辑

嘿,这个问题问到点子上了!Razor之所以能区分@符号的两种使用场景,核心靠的是它的上下文智能解析规则,咱们用你给的例子来拆解说明:

  • 当成代码表达式解析:当@后面紧跟着合法的C#标识符(比如符合命名规则的变量名、属性名,像emailAddress这种开头是字母、后续由字母/数字/下划线组成的内容),Razor就会把它识别为C#表达式,去执行并输出对应的变量值。比如你第一个例子:

    <div>@emailAddress</div>
    

    这里emailAddress是有效的变量名,所以Razor会输出这个变量存储的实际内容。

  • 当成字面文本输出:如果@后面的内容不是合法的C#标识符(比如像邮箱里@后面跟着带点的emailAddress.com,C#标识符里不允许直接出现点,除非是属性访问链,但这里整体是字符串的一部分),Razor就会把@和后面的内容一起当成普通HTML文本直接输出。就像第二个例子:

    <div>cbehrens@emailAddress.com</div>
    

    这里Razor判断@后面的内容不是可执行的代码,所以直接打印整个字面字符串。

另外补充个小技巧:如果遇到特殊情况——你就是想输出@符号,但后面刚好跟着合法标识符(比如想输出@emailAddress这个文本,而不是变量值),可以用双@符号转义,写成@@emailAddress,这样Razor就会输出单个@加上后面的文本啦。

内容的提问来源于stack exchange,提问作者Chris B. Behrens

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:31:18