1

我正在使用 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})+)$" 
4

1 回答 1

2

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

<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" >
于 2013-05-29T17:39:55.310 回答