2012-10-26 8 views
12

Mam widok brzytwy z @ Html.ValidationMessageFor pomocników i jquery dyskretnej konfiguracji sprawdzania poprawności.Wyświetlanie błędów stanu modelu po wywołaniu ajaxa na widokach Razor

Chcę wywołać kontroler/akcję i wyświetlić ewentualne błędy stanu modelu zwrócone przez działanie przy użyciu tej samej logiki walidacji, która jest już ustawiona.

Zrobiłem kod, który to robi, ale zastanawiałem się, czy jest już sposób, aby zrobić to automatycznie, tj. Jeśli przechwytywam złe żądanie HTTP jako odpowiedź AJAX, chcę pobrać błędy stanu modelu z ciała odpowiedzi i podłącz je do dyskretnego sprawdzania poprawności.

szukam kompletne rozwiązanie zalecane, nie obejścia :)

Dzięki!

Odpowiedz

17

Można zwrócić błędy z Json wyniku (How to get all Errors from asp.net mvc modelState?):

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

Następnie ręcznie pokazać błędy. Uzyskaj forma walidator:

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

Następnie sprawdź, czy pola są inicjowane poprawnie, na przykład można szukać tutaj (krok opcjonalny):

validator.settings.rules 

LUB

validator.settings.messages 

Jeśli wszystko jest w porządku , możesz pokazać błąd:

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

Gdzie Password jest nazwą pola, a Too simple! jest komunikatem o błędzie.

Powiązane problemy