我正在创建一个示例ASP。NET MVC 3站点使用Razor作为视图引擎。razor语法以@字符开始,例如@ renderbody()。如果我在我的cshtml页面上写@test,它会给我解析错误
CS0103:名称“test”在当前上下文中不存在
如何转义“@”字符?
我正在创建一个示例ASP。NET MVC 3站点使用Razor作为视图引擎。razor语法以@字符开始,例如@ renderbody()。如果我在我的cshtml页面上写@test,它会给我解析错误
CS0103:名称“test”在当前上下文中不存在
如何转义“@”字符?
当前回答
我知道这个问题很老了,但我尝试了上面所有的方法,但它并没有帮助我在ASP中转义字符“@”。NET框架(MVC 5)内的URL。根据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
其他回答
@@是前面提到的Razor视图中@的转义字符。
然而,Razor确实试图找出什么时候“@”只是一个“@”,以及它在哪里标记c#(或VB.Net)代码。它的主要用途之一是在Razor视图中识别电子邮件地址——不需要在电子邮件地址中转义@字符。
我应该做这件事。
实际上@应该与Razor语法关键字或变量/模型一起使用来绑定值。
如: 如果test被赋值 即@ {var test = "ABC"} 然后你可以通过设置得到这个值,因为@test anywhere是CSHTML页面的HTML部分。 否则,简单使用@Html.DisplayName("test")
我知道这个问题很老了,但我尝试了上面所有的方法,但它并没有帮助我在ASP中转义字符“@”。NET框架(MVC 5)内的URL。根据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
我尝试了上面所有的方法,没有一个奏效。这就是我所做的工作:
@{
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对它很酷。