2012-10-26 4 views
12

Ich habe eine Rasiereransicht mit @ Html.ValidationMessageFor Helfern und jquery unaufdringlichen Validierungssetup.Anzeigen von Modellstatusfehlern nach AJAX-Aufruf auf Razor-Ansichten

Ich möchte Controller/Aktion aufrufen und eventuelle Modellstatusfehler anzeigen, die von Aktion zurückgegeben werden, indem dieselbe Validierungslogik verwendet wird, die bereits festgelegt wurde.

Ich habe einen Code gemacht, der es tut, aber ich frage mich, ob es bereits eine Möglichkeit gibt, es automatisch zu tun, dh wenn ich HTTP Bad Request als AJAX-Antwort erfassen möchte, möchte ich Modellstatusfehler aus Antworttext und stecke sie zur unauffälligen Validierung an.

Ich bin für eine vollständige empfohlene Lösung suchen, nicht Abhilfen :)

Dank!

Antwort

17

Sie können Fehler mit Json Ergebnis (How to get all Errors from asp.net mvc modelState?) zurück:

var allErrors = ModelState.Values.SelectMany(v => v.Errors); 

Fehler zeigen dann manuell. Get Form Validator:

var validator = $("form").validate(); 

Dann überprüfen, ob Ihre Felder korrekt initialisiert werden, zum Beispiel können Sie hier sehen können (optionaler Schritt):

validator.settings.rules 

ODER

validator.settings.messages 

Wenn alles in Ordnung ist , dann könnte der Fehler angezeigt werden:

validator.showErrors({"Password": "Too simple!"}); 

Dabei ist Password Feldname und Too simple! ist eine Fehlermeldung.

Verwandte Themen