我正在使用Razor作为视图引擎创建一个示例ASP.NET MVC 3站点。 剃须刀语法以@
字符开头,例如@RenderBody()
。 如果我在cshtml页面上写@test,它会给我解析错误
CS0103:名称“ test”在当前上下文中不存在
如何转义“ @”字符?
#1楼
剃刀@将转义符转义为char ...
<img src="..." alt="Find me on twitter as @("@username")" />
要么
<img src="..." alt="Find me on twitter as @("@")username" />
#2楼
我更喜欢使用@Html.Raw("@")
而不是HTML实体。
#3楼
我只是有同样的问题。 我声明了一个变量,使我的文本带有@。
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="twitter:site" content="@twitterSite">
#4楼
我尝试了以上所有选项,但没有一个起作用。 这就是我所做的工作:
@{
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对此很满意。
#5楼
这项工作对我来说
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
或者可以使用:@@ Alan_van_Buuren
:D
#6楼
在我看来@Html.Raw("@")
似乎比@@
更可靠,因为并非在所有情况下@@
都可以逃脱。
因此:
<meta name="twitter:site" content="@twitterSite">
将会:
<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
#7楼
@@
应该这样做。
#8楼
如上所述,@@是Razor视图中@的转义字符。
但是,Razor会尝试找出“ @”只是一个“ @”以及在其上标记C#(或VB.Net)代码的位置。 这样做的主要用途之一是在Razor视图中标识电子邮件地址-不必在电子邮件地址中转义@字符。
#9楼
您可以为此使用@@。 像var email = firstName + '\\@@' + domain;
#10楼
只需在CSHTML文件中添加一个变量var myVariable = @"@";
并将其添加到您的布局<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
#11楼
我无法在我的占位符属性中使用其中的任何一个,因此我使用了xml特殊字符。
<input type="text" placeholder="fex: firstname@lastname.com"/>
在此处查看更多示例。 https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
#12楼
实际上,@应该与Razor语法关键字一起使用,或与变量/模型一起使用以绑定值。
例如:如果为test分配了值,即@ {var test =“ ABC”},那么您可以通过设置获取值,因为@test在html部分的cshtml页面中的任何位置。 否则,可以简单地用作@ Html.DisplayName(“ test”)
#13楼
使用<text></text>
或更简单的方法@:
#14楼
对于有关@RazorCodePart1 @@ @RazorCodePart2
,您需要执行以下操作:
@RazorCodePart1 @:@@ @RazorCodePart2
我知道,它看起来有些奇怪,但是它可以工作,并且可以在代码块之间为您提供文字字符“ @”。
来源:CSDN
作者:p15097962069
链接:https://blog.csdn.net/p15097962069/article/details/103946941