2011-12-06 9 views
14

Formularz HTML jest kontrolowany za pomocą szablonów Knockout JS i jQuery. Podstawowa walidacja jQuery jest używana do sprawdzania poprawności pól. Formularz zostaje spersonalizowany do JSON i przesłany do kontrolera MVC za pomocą AJAX. Akcja kontrolera MVC dokonuje walidacji modelu po stronie serwera, dodaje błędy do ModelState.Wyświetlanie błędów przy użyciu Knockout JS + MVC + sprawdzanie poprawności modelu po stronie serwera?

  1. Jaka jest najlepsza praktyka, aby powrócić te błędy do klienta - iteracja błędy w ModelState i dodawanie ich do kolekcji klucz/wartość błędów w odpowiedzi JSON?

  2. Jak wyświetlić błędy na kliencie? W jaki sposób "wiążesz" zbiór błędów w kluczach/wartościach z odpowiednimi polami w modelu?

Powiedzmy, że w modelu występuje pole "nazwa", z odpowiednim polem tekstowym renderowanym przez szablon jQuery. W jaki sposób można wziąć błąd dla pola "nazwa" w zbiorze błędów i wyświetlić komunikat o błędzie pod polem tekstowym "nazwa"?

Odpowiedz

5

Jest dwóch wtyczek walidacji ko.js (found here), które mogłyby pomóc,

Knock-Knock validation

Knockout Validation

Można drut jedną z tych, do walidacji danych MVC unobstrsive wstrzyknięto po stronie klienta.

+10

Po przejrzeniu drugiej opcji (sprawdzanie poprawności Knockout) zastanawiałem się, w jaki sposób można odwzorować atrybuty sprawdzania poprawności z modelu widoku MVC na metodę .extend() w Knockout? – Ryan

4

Jeśli korzystasz z MVC, dyskretny javascript przeprowadza walidację po stronie klienta na podstawie zestawu sprawdzania poprawności w twoim modelu. Nie musisz wykonywać żadnej dodatkowej konfiguracji.

Po tym wszystkim nie ma bezpośredniej metody sprawdzania poprawności strony klienta w oparciu o model korzystający z javascript i knockoutjs.

Istnieje kilka sposobów zrobienia tego po stronie klienta.

  1. Jquery lub inne struktury sprawdzania poprawności mogą wykonywać sprawdzanie poprawności. Ale musisz mieć tag. Zaletą tego podejścia jest to, że Twój kod będzie prosty i łatwy w utrzymaniu.
  2. Można przeprowadzić niestandardową weryfikację po stronie klienta przy użyciu javascript i powiązać komunikaty sprawdzania poprawności przy użyciu funkcji nokautu. Wymaga to utworzenia etykiet błędów dla każdej zmiennej wejściowej. Zaletą tego podejścia jest pełna kontrola nad tym, co i jak ma być wyświetlane.

Osobiście miałem podobny wymóg w jednym z ostatnich projektów i osiągnąłem to dzięki niestandardowym kontrolom sprawdzania poprawności i etykietom błędów.

Powiązane problemy