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

Razor如何区分@符号的用法?,razor,Razor,给出剃须刀内容的两个示例: <div>@emailAddress</div> @emailAddress 及 cbehrens@emailAddress.com 我希望第一个将输出一个名为email address的变量的值,第二个将打印文本“cbehrens@emailAddress.com". Razor如何区分@符号的这两种用法?Razor以HTML模式启动,直到看到第一个@字符,然后 将其后的所有内容都视为C#表达式 当Razor解析器检测到表达式的结尾

给出剃须刀内容的两个示例:

<div>@emailAddress</div>
@emailAddress

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


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

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

  • 将其后的所有内容都视为C#表达式
  • 当Razor解析器检测到表达式的结尾时,它会切换回HTML
因此,带下划线的部分将被视为C#源代码:

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

<div>cbehrens@emailAddress.com</div>
              ================  
结束括号表示“表达式结束”,解析器切换回HTML模式


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

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

显然
@
是@的转义符号。所以我猜
@emailAddress
会显示变量值。不确定第二个是否可以,因为我现在无法测试,它可能会打印cbehrens,后跟
@emailAddress.com
cbehrens@@emailAddress.com
会起作用的,虽然是的,我想了解引擎如何区分这两种用途的细节-是什么特定的分隔符或条件使解析器选择呈现变量还是呈现直接内容?对不起,你说“我希望”您能否确认输出是否符合预期。i、 e
@email=my@email.com.
使用
@电子邮件打印
my@email.com
my@email.com
打印
my@email.com
而非
my@my@email.com
这正是我所期望的。事实并非如此——在我的代码中,电子邮件地址被正确识别并作为内容发送。好的,太好了。有时候你需要括号,我想这就是你要问的。是的,我希望有人知道它是如何工作的,这样我就不必去查看源代码了。一个可能的更正:“将所有后续内容都视为C表达式”这只适用于.cshtml文件,而.vbhtml将在VB.NET代码中进行解释。虽然我同意,但问题并没有具体说明,C#更常见。本文介绍Razor语法以及如何正确使用“@”符号。
<div>cbehrens@(emailAddress).com</div>
              ==============
<div>cbehrens@@emailAddress.com</div>