我正在使用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\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
答案 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" >