在剃刀视图引擎逃脱@字符
我正在创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>