Razor如何区分@符号的使用?

时间:2018-05-18 17:36:04

标签: razor

鉴于Razor内容的两个例子:

<div>@emailAddress</div>

并且

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

我希望第一个输出一个名为email address的变量的值,第二个将打印文字文本&#34; cbehrens@emailAddress.com"。

Razor如何区分@符号的这两种用法?

1 个答案:

答案 0 :(得分:0)

Razor以HTML模式开始,直到看到第一个@字符,然后

  • 将其后的所有内容视为C#表达式
  • 当Razor解析器检测到表达式结束时,它会切换回HTML

因此带下划线的部分将被视为C#源代码:

<div>@emailAddress</div>
      ============             

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

这并不总是你想要的...... emailAddress可能没有名为com的属性。

要解决此问题,请使用括号括起C#表达式:

<div>cbehrens@(emailAddress).com</div>
              ==============

结束括号表示“结束表达”,解析器切换回HTML模式。

如果您确实要输出@字符,请改用@@

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