33

MVC3 には、カスタム検証を追加するための 2 つの新しいメカニズムがあります。これらは、(1) ValidationAttribute のサブクラス、または (2) IValidatableObject の実装です。

ValidationAttribute を使用すると、IClientValidatable を実装する (および jQuery を介して新しいアダプターとメソッドを登録する) ことで、クライアント側の検証を比較的簡単に追加できます。

IValidatableObject は、再利用が不可能な 1 回限りの検証要件により適しています。また、コードがわずかに単純になります。したがって、多くのシナリオでこれを選択します。残念ながら、この方法を使用してクライアント側の検証を実装する簡単な方法はわかりません。

質問は、私が欠けているものと、IValidatableObject を使用するときに JS 検証を取得する方法です。

4

3 に答える 3

23

ここで (有効な) 回答が得られなかったので、Microsoft の数人に尋ねたところ、現時点では不可能であることが確認されました。

ブラッド・ウィルソン:

現時点では、プロパティ レベルのバリデーターのみがクライアント側の検証を発行できます (これは、ブラウザーの形式での入力検証のアイデアとよりよく一致するためです... ブラウザーの観点から言えば、「モデル」とは言えません。ビューの)。

スチュアート・リークス:

IValidatableObject でクライアント検証を接続できるとは思えません

于 2011-01-28T09:35:12.857 に答える
4

http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx http://blogs.msdn.com/b/stuartleeks/archive /2010/07/28/asp-net-mvc-adding-client-side-validation-to-validatepasswordlengthattribute-in-asp-net-mvc-3-preview-1.aspx

ASP.NET MVC 3は、モデルのバインド時にIValidateObjectインターフェイスを尊重するようになり(MVC 2ですでにサポートされている他のすべての検証アプローチに加えて)、検証エラーを取得し、組み込みのHTMLフォームヘルパー。

ASP.NET MVC 3には、新しいIClientValidatableインターフェイスも導入されています。これにより、ASP.NET MVCは、バリデーターがクライアント検証をサポートしているかどうかを実行時に検出できます。このインターフェースは、さまざまな検証フレームワークと統合できるように設計されています。MVC 3には、ModelMetadata作成プロセスに貢献する方法を簡素化する新しいIMetadataAwareインターフェイスも導入されています。

于 2011-01-20T15:10:35.013 に答える
0

この記事では、ASP.NET MVC のクライアント側の検証でコンテナー オブジェクトにアクセスする方法について説明します。おそらくこれを使用して、独自のクライアント側の検証を使い始めることができます

于 2011-01-21T14:47:19.187 に答える