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 に答える