Отображать ошибки с помощью Knockout JS + MVC + Проверка модели на стороне сервера? - PullRequest
14 голосов
/ 06 декабря 2011

Форма HTML контролируется с помощью шаблонов Knockout JS и jQuery. Базовая проверка JQuery используется для проверки полей. Форма сериализуется в JSON и передается в действие контроллера MVC с использованием AJAX. Действие контроллера MVC выполняет проверку модели на стороне сервера, добавляет ошибки в ModelState.

  1. Как лучше всего возвращать эти ошибки клиенту - перебирать ошибки в ModelState и добавлять их в набор ошибок ключ / значение в ответе JSON?

  2. Как вы отображаете ошибки на клиенте? Как «связать» набор ключей / значений ошибок с соответствующими полями в модели?

Скажем, в модели есть поле "имя" с соответствующим текстовым полем, отображаемым шаблоном jQuery. Как взять ошибку для поля «имя» в коллекции ошибок и отобразить сообщение об ошибке под текстовым полем «имя»?

Ответы [ 2 ]

5 голосов
/ 07 декабря 2011

Есть два плагина проверки для ko.js (, найденных здесь ), которые могут вам помочь,

Подтверждение детонации-детонацией

Подтверждение нокаута

Вы можете подключить один из них к необъективной проверке данных mvc, введенной на стороне клиента.

4 голосов
/ 07 декабря 2011

Если вы используете MVC, ненавязчивый javascript выполняет проверку на стороне клиента на основе проверки, установленной в вашей модели. Вам не нужно выполнять никаких дополнительных настроек.

Сказав это, не существует прямого способа выполнить проверку на стороне клиента на основе модели с использованием javascript и knockoutjs.

Есть несколько способов сделать это на стороне клиента.

  1. Jquery или любые другие платформы проверки могут выполнять проверку. Но вам нужно иметь тег. Преимущество такого подхода в том, что ваш код будет простым и легким в обслуживании.
  2. Вы можете выполнить пользовательскую проверку на стороне клиента с помощью JavaScript и привязать сообщения проверки с помощью нокаута. Для этого необходимо создать метки ошибок для каждой входной переменной. Преимущество этого подхода в том, что вы будете иметь полный контроль над тем, как и что должно отображаться.

Лично у меня было похожее требование в одном из недавних проектов, и я выполнил его с помощью пользовательских проверок и меток ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...