Код javascript для проверки клиента уже написан с нуля и отлично работает . Но чтобы сделать наше решение более масштабируемым и минимизировать линии, мы думаем о замене наших клиентских валидации Javascript встроенной поддержкой asp MVC для ненавязчивого javascript. Однако есть сценарии, где его особенно невыгодно. Например. Я хочу проверить поле с регулярным выражением. и поле напрямую не связано с моделью. Но для реализации ненавязчивого javascript мне нужно привязать его к некоторому полю, которое я создаю в модели только с целью проверки (и не используя его в моей форме submit). есть ли способ добиться валидации без привязки поля к модели ? и каковы были бы значительные преимущества, если бы я заменил javascript-код ненавязчивыми проверками, даже если бы не для всех сценариев?Должен ли я использовать ненавязчивый javascript в asp mvc вместо написания собственного кода проверки?
ответ
значительные преимущества:
- Поскольку unobstrusive проверка очень хорошо известна дэвов, ваш код проще для понимания других (и себя в будущем)
- принимает преимущество Html Helpers так атрибутов проверки автоматически добавляется. Вы пишете меньше кода, который более читабельен.
- Ваш код проверки МНОГО МЕНЬШЕ, с ошибкой, поскольку проект с открытым исходным кодом и люди со всего мира используют для исправления ошибок и улучшения производительности кода.
Используйте unobstrusive для всех моделей в решении. Если есть проверка, которая не предоставляется из коробки, вы всегда можете найти write up your own validation function для свойств, связанных с вашей моделью.
разум, что есть много проектов с открытым исходным кодом, которые расширяют атрибуты .net валидатора, такие как MVC FoolProof
Наконец, если есть свойства не связаны с вашей моделью (ждать, почему там свойства не связаны с вашей моделью ?), вы можете написать собственный клиентский код для них.
Спасибо за ваш ответ. действительно полезно. У меня есть еще один вопрос. Если я использую ненавязчивую проверку. Что все привязки идут с ним с помощью html-помощника. Я знаю html.editorfor и html.textboxfor. Могу ли я иметь html.textbox? И мне обязательно понадобится привязать поле к модели, если я воспользуюсь этим правилом проверки? – tina
Я считаю, что автоматические атрибуты data-val html будут добавляться только при использовании EditorFor, TextboxFor и т. Д. – amhed
Я не могу добавить атрибуты data-val с помощью текстового поля или текстового поля. Даже если я добавлю эти атрибуты с помощью JQuery, они добавляются, но не работают. Позвольте пояснить. На странице у меня есть код Если это вещь, которую я кодирую непосредственно в свой html, это работает, но нет, если это генерируется html-помощником и jquery (точно такая же разметка), почему? – tina
Перейдите с проверкой mvc asp.net и используйте инфраструктуру клиента asp.net mvc для настройки процесса проверки. – Shashank