我正在使用 Razor 作为视图引擎创建一个示例 ASP.NET MVC 3 站点。 Razor 语法以
@
字符开头,例如 @RenderBody()
。如果我在我的.cshtml页面上写@test,它会给我一个解析错误
CS0103:当前上下文中不存在名称“test”
如何转义“@”字符?
@@
应该这样做。
Razor @ 将字符转义为符号...
<img src="..." alt="Find me on twitter as @("@username")" />
或
<img src="..." alt="Find me on twitter as @("@")username" />
@Html.Raw("@")
比@@
更可靠,因为并非在所有情况下@@
都会逃脱。
因此:
<meta name="twitter:site" content="@twitterSite">
将是:
<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
使用
<text></text>
或更简单的方法@:
我更喜欢使用
@Html.Raw("@")
,而不是 HTML 实体。
@@ 是 Razor 视图中 @ 的转义字符,如上所述。
然而,Razor 确实尝试找出“@”何时只是“@”以及它在何处标记 C#(或 VB.Net)代码。其主要用途之一是在 Razor 视图中识别电子邮件地址 - 无需转义电子邮件地址中的 @ 字符。
@RazorCodePart1 @@ @RazorCodePart2
的问题,你需要的顺序是:
@RazorCodePart1 @:@@ @RazorCodePart2
我知道,它看起来有点奇怪,但它有效,并且会在代码块之间为您提供文字字符“@”。
%40
对我有用。这是我试图访问的原始 URL:
https://unpkg.com/@google/[email protected]/dist/markerclustererplus.min.js
这在我的代码中对我有用:
https://unpkg.com/%40google/[email protected]/dist/markerclustererplus.min.js
@{
var twitterSite = "@MyTwitterSite";
}
...
<meta name="twitter:site" content="@twitterSite">
<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">
或者哟可以使用:
@@Alan_van_Buuren
@{
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 对此很满意。
var email = firstName + '\@@' + domain;
var myVariable = @"@";
并将其添加到您的布局中
<span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>
例如: 如果测试被分配了值 即@ { var test = "ABC" } 然后你可以通过设置@test来获取值,任何地方都是html部分的cshtml页面。 否则,简单地使用 @Html.DisplayName("test")
@Html.Raw()
是所有版本的最佳解决方案,并且始终适合我。我添加了一个工作示例 cdn URL 以提供清晰的想法。
@Html.Raw("<script src=\"https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js\"></script>")