我正在创建一个示例ASP。NET MVC 3站点使用Razor作为视图引擎。razor语法以@字符开始,例如@ renderbody()。如果我在我的cshtml页面上写@test,它会给我解析错误

CS0103:名称“test”在当前上下文中不存在

如何转义“@”字符?


当前回答

剃刀@转义字符符号…

<img src="..." alt="Find me on twitter as @("@username")" />

or

<img src="..." alt="Find me on twitter as @("@")username" />

其他回答

我尝试了上面所有的方法,没有一个奏效。这就是我所做的工作:

@{
    string str = @"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$";
}

<td>Email</td>
<td>
   <input type="text" id="txtEmail" required name="email" pattern=@str /> 
</td>

我创建了一个字符串变量,并将所有的RegEx模式代码传递给它,然后在html中使用该变量,Razor对它很酷。

@ html . raw(“@”)在我看来甚至比@@更可靠,因为并非在所有情况下@@都会被转义。

因此:

<meta name="twitter:site" content="@twitterSite">

是:

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">

你可以使用@@来达到这个目的。 Like var email = firstName + '\@@' +域名;

我不能让这些在占位符属性内工作,所以我使用xml特殊字符。

<input type="text" placeholder="fex: firstname&#64;lastname.com"/>

点击这里查看更多示例。 https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html

使用<text></text>或更简单的方法@: