コレクション内のアイテムのプロパティにDataAnnotations RegularExpression属性を使用しようとしています - FieldオブジェクトにはFormatterオブジェクトのコレクションがあり、 Valueプロパティを持つAttributesのコレクション。MVC3正規表現による邪魔にならない妥当性検査は、常に失敗して初めて動作します。
私の属性ビューモデルクラスの中では、私が持っている:
[RegularExpression(@"^\d+$", ErrorMessage = "That didn't do what you hoped it would do")]
public string Value { get; set; }
私は私の見解では、この持っている:
@Html.TextBoxFor(x => x.Formatters[fmt].Attributes[att].Value)
をし、それがこのマークアップを生成します。
<input type="text" value=" " name="Formatters[1].Attributes[0].Value" data-val-regex-pattern="^\d+$" data-val-regex="That didn't do what you hoped it would do" data-val="true" >
のすべてそれは正しいようですが、検証は常に最初に失敗します。テキストボックスに23を入力してタブアウトすると、検証イベントが発生し、私が望むように物事が進まないことが伝えられます。フィールドに戻って正確に同じ値を入力すると、それは機能します。私が手紙を入力すると、それはまだ失敗します。
誰かが私が間違っているとは何か考えているか、または検証を最初に振る舞うように強制することができますか?なぜなら、トップレベルのプロパティに同じ検証属性を設定すると、それは必要に応じて機能するためです。
ありがとうございます!
控えめな検証jsファイルの行まで追跡しました。 "match = new RegExp(params).exec(value);" RegExp.execは最初にnullを返し、その後は毎回値を返します。 –
それは変です。私は問題を再現できません。あなたは、あなたのビューモデル、コントローラー、ビューの絞り込みの例を提供してください。 –