Escape @ character in razor view engine
我正在使用Razor作为视图引擎创建一个示例ASP.NET MVC 3站点。Razor语法以
CS0103: The name 'test' does not exist in the current context
我该如何转义"@"字符?
razor@escape char转换为符号…
1 | <img src="..." alt="Find me on twitter as @("@username")" /> |
或
1 | <img src="..." alt="Find me on twitter as @("@")username" /> |
使用
在我看来,
因此:
1 | <meta name="twitter:site" content="@twitterSite"> |
将是:
1 | <meta name="twitter:site" content="@Html.Raw("@")twitterSite"> |
我更喜欢使用@html.raw("@"),而不是HTML实体
@@是Razor视图中@的转义字符,如上所述。
然而,Razor确实尝试在"@"只是一个"@"以及它标记C(或vb.net)代码的地方进行计算。它的主要用途之一是在Razor视图中标识电子邮件地址-不需要在电子邮件地址中转义@字符。
关于
1 | @RazorCodePart1 @:@@ @RazorCodePart2 |
我知道,它看起来有点奇怪,但是它可以工作,并且会在代码块之间得到文本字符"@"。
我也有同样的问题。我声明了一个变量,将文本与@放在一起。
1 2 3 4 5 6 7 | @{ var twitterSite ="@MyTwitterSite"; } ... <meta name="twitter:site" content="@twitterSite"> |
这是我的工作
1 | <meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")"> |
或者可以使用:@@艾伦·范·布伦
D
只需在cshtml文件中添加一个变量
并将其添加到布局中
您可以将@@用于此目的。像
我尝试了上面所有的选择,但都没有成功。这就是我所做的工作:
1 2 3 4 5 6 7 8 | @{ 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对此很酷。
实际上,@应该与razor语法关键字一起使用,或者与变量/模型一起绑定一个值。
Eg:如果给测试赋值即@var test="abc"然后您可以通过设置获得值,因为@test anywhere is cshtml page in html part。否则,简单地使用@html.displayname("test")。
我无法在占位符属性中使用这些字符,所以我使用了XML特殊字符。
1 | <input type="text" placeholder="fex: firstname@lastname.com"/> |
请参阅此处的更多示例。https://www.dvteclipse.com/documentation/svlinter/how_to_use_special_characters_in_xml.3f.html