在剃刀视图引擎逃脱@字符

我正在创build一个使用Razor作为视图引擎的示例ASP.NET MVC 3站点。 剃刀语法以@字符开头,例如@RenderBody() 。 如果我在我的cshtml页面上写@test,会给我parsing错误

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

我如何转义“@”字符?

@@应该这样做。

剃刀@逃逸字符符号…

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

要么

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

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

@Html.Raw("@")在我看来似乎比@@更可靠,因为@@不会在任何情况下都逃脱。

因此:

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

将会:

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

而不是HTML实体,我更喜欢使用@ Html.Raw(“@”)

如上所述,@@是Razor视图中@的转义字符。

然而,Razor确实在“@”只是一个“@”以及它标记C#(或VB.Net)的代码时试图解决这个问题。 其中一个主要用途是识别Razor视图中的电子邮件地址 – 不必在电子邮件地址中转义@字符。

对于关于@RazorCodePart1 @@ @RazorCodePart2 ,你需要这个序列:

 @RazorCodePart1 @:@@ @RazorCodePart2 

我知道,它看起来有点奇怪,但它的工作原理将会在代码块之间得到字符“@”。

我只是有同样的问题。 我宣布一个variables把我的文字与@。

 @{ var twitterSite = "@MyTwitterSite"; } ... <meta name="twitter:site" content="@twitterSite"> 

我尝试了上面所有的选项,没有任何工作。 这是我所做的工作:

 @{ string str = @"[a-z0-9._%+-]+@[a-z0-9.-]+\.[az]{2,3}$"; } <td>Email</td> <td> <input type="text" id="txtEmail" required name="email" pattern=@str /> </td> 

我创build了一个stringvariables,并将所有正则expression式模式代码传递给它,然后在html中使用该variables,而剃刀与它很酷。

这个工作对我来说

 <meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")"> 

或者可以使用:@@ Alan_van_Buuren

:d

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

只需在CSHTML文件中添加一个variablesvar myVariable = @"@";

并将其添加到您的布局<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>