2010-12-06 6 views
1

Guten Tag!Brücke zwischen ASP.NET MVC 2 Server Validierung und jQuery Validierung Plugin

Ich benutze ASP.NET MVC 2.0 mit Server-Validierung (DataAnnotations + IDataErrorInfo für ViewModel-Klassen).

Ich kann meine Client-Validierung manuell schreiben mit jQuery Validierung Plugin (ich habe dies seit Jahren getan :)) und das ist der einzige Ansatz, wenn ich sehr intelligente Client-Validierung bekommen kann.

Aber in den meisten Fällen wird es cool sein, Serverregeln direkt zur Clientvalidierung zu ziehen. Ich habe hier sah: http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx aber es scheint zu viel Code für eine solche gemeinsame Aufgabe

Fragen (zuletzt):

  • Gibt es eine bessere Lösung?
  • Wird ASP.NET MVC 3 irgendetwas in diesem Bereich bringen?

Vielen Dank!

Antwort

0

Hier ist keine Magie. Wenn Sie eine benutzerdefinierte Überprüfung auf Ihrem Server durchführen, müssen Sie sie in das von Ihnen verwendete Client-Validierungsframework übersetzen. Was ist, wenn Sie einen entfernten Server abfragen, um eine Geschäftsvalidierung durchzuführen? Wie in aller Welt erwarten Sie, dass der Kunde davon erfährt? Und nein, ASP.NET MVC 3 bringt in diesem Bereich nichts Neues.

Was ASP.NET MVC 3 bringt, ist unobtrusive validation für einfache Regeln und machen jquery validieren die Standard-Client-Seite Validierung Plugin. Hier ist ein weiterer nice article darüber.

Übrigens würde ich Ihnen empfehlen, Blick auf FluentValidation. Es hat eine tolle integration with ASP.NET MVC.

+0

Ich meine zumindest Unterstützung für Standard DataAnnotations Attribute (Erforderlich, Regexp, E-Mail, etc.) jQuery validate scheint all dies zu haben. Ist das möglich ohne zu viel Code? – artvolk

+0

Ja, Standardattribute werden alle unterstützt. Nur '<% Html.EnableClientValidation(); %> 'Ihrer Ansicht nach. Was ASP.NET MVC 3 bringt, ist [unauffällige Validierung] (http://weblogs.asp.net/mikaelsoderstrom/archive/2010/10/06/unobtrusive-validation-in-asp-net-mvc-3. aspx). Es verwendet HTML5 'data- *' - Attribute in Ihren Eingabefeldern, um das 'jquery.validate'-Plugin anzuweisen, welche Regeln anzuwenden sind. –