我正在使用Razor作为视图引擎创建一个示例ASP.NET MVC 3站点。剃刀的语法以@
字符例如开头@RenderBody()
。如果我在cshtml页面上写@test,它会给我解析错误
CS0103:名称“ test”在当前上下文中不存在
如何转义“ @”字符?
@
用大括号括起来。我设法通过以下方式使其正常工作:@(@new)
我正在使用Razor作为视图引擎创建一个示例ASP.NET MVC 3站点。剃刀的语法以@
字符例如开头@RenderBody()
。如果我在cshtml页面上写@test,它会给我解析错误
CS0103:名称“ test”在当前上下文中不存在
如何转义“ @”字符?
@
用大括号括起来。我设法通过以下方式使其正常工作:@(@new)
Answers:
@@
应该这样做。
@RazorCodePart1 @@ @RazorCodePart2
例如,两个Razor代码段之间的文字@。
<style>
剃须刀页面上有一个标签,该标签必须嵌入'@media {}'指令,因此html编码不是一种选择;只有@@有效。
剃刀@将符号转义为char ...
<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">
如上所述,@@是Razor视图中@的转义字符。
但是,Razor会尝试找出“ @”只是一个“ @”并且在其中标记C#(或VB.Net)代码的地方。这样做的主要用途之一是在Razor视图中标识电子邮件地址-不必在电子邮件地址中转义@字符。
您可以为此使用@@。喜欢var email = firstName + '\@@' + domain;
我无法在我的占位符属性中使用其中的任何一个,因此我使用了xml特殊字符。
<input type="text" placeholder="fex: firstname@lastname.com"/>
在此处查看更多示例。 https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html
我知道这个问题很旧,但是我尝试了以上所有方法,但是它没有帮助我在URL内的ASP.NET完整框架(MVC 5)中转义字符“ @”。不过,基于Terje Solem的回答,UTF-8代码%40
对我有用。这是我尝试访问的原始URL:
https://unpkg.com/@google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js
并带有其中的代码:
https://unpkg.com/%40google/markerclustererplus@4.0.1/dist/markerclustererplus.min.js