HTML& ASP MVC 4:错误CS1056:意外字符'\'

时间:2013-05-29 10:39:55

标签: asp.net-mvc html5 asp.net-mvc-4 escaping

我正在使用asp mvc 4.我有以下html标记。

<input type="text" maxLength="2000" pattern="^(~/|https?://).*$|^mailto:([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" >

我收到以下服务器错误:HttpCompileException - error CS1056: Unexpected character '\'

我试图逃避它,但它没有用。这一定很简单,但我遗漏了一些东西。任何帮助将不胜感激。谢谢!

解决方案

问题出在@符号中。它应该被转义,因为它被Razor视图引擎使用。

这有效:

pattern="^(~/|https?://).*$|^mailto:([\w\.\-]+)&#64;([\w\-]+)((\.(\w){2,3})+)$" 

1 个答案:

答案 0 :(得分:1)

您也可以将pattern的属性值用作字符串文字:

<input type="text" maxLength="2000" pattern='@(@"^(~/|https?://).*$|^mailto:([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$")' >

//better:    
@{
    const string urlPattern = @"^(~/|https?://).*$|^mailto:([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$";
    }
<input type="text" maxLength="2000" pattern="@urlPattern" >