2010-12-06 14 views
1

おはよう!ASP.NET MVC 2サーバ検証とjQuery検証プラグインの間のブリッジ

私はサーバーの検証でASP.NET MVC 2.0を使用します(ViewModelクラスのDataAnnotations + IDataErrorInfo)。

jQuery検証プラグインを使用してクライアントの検証を手作業で書くことができます(私はこれを何年もやっています:))これは非常にスマートなクライアント検証を得ることができる唯一のアプローチです。

しかし、ほとんどの場合、サーバーのルールをクライアントの検証に直接プルするのはクールです。 http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx それは、このような一般的なタスクのために多くのコードに(最後に)

質問思える:私はここで見てきた

  • より良い解決策は何を?
  • ASP.NET MVC 3はこの領域に何かをもたらすでしょうか?

ありがとう!

答えて

0

ここには魔法はありません。サーバーでカスタム検証を実行する場合は、使用しているクライアント検証フレームワークに変換する必要があります。遠いサーバーに照会してビジネスの検証を実行する場合はどうでしょうか?あなたはどのように地球上のクライアントにこれについて知りたいと思いますか? ASP.NET MVC 3では、この領域に新しい機能は追加されていません。

ASP.NET MVC 3は単純なルールではunobtrusive validationで、jqueryはデフォルトのクライアント側の検証プラグインを検証します。それについて別のnice articleがあります。

ところで、私はあなたを見てお勧めしますFluentValidation。それは素晴らしいintegration with ASP.NET MVCを持っています。

+0

少なくとも、標準のDataAnnotationsの属性(必須、正規表現、電子メールなど)をサポートしていることを意味します.jQueryの検証ではこれらのすべてがあるようです。あまりにも多くのコードなしで可能ですか? – artvolk

+0

ええ、標準属性はすべてサポートされています。単に '<%Html.EnableClientValidation(); %> 'を表示します。 ASP.NET MVC 3がもたらしたことは、[控えめな検証](http://weblogs.asp.net/mikaelsoderstrom/archive/2010/10/06/unobtrusive-validation-in-asp-net-mvc-3)です。 aspx)。入力フィールドにHTML5 'data- *'属性を使用して、適用するルールについて 'jquery.validate'プラグインに指示します。 –