Проверка формы ASP.net MVC - PullRequest
       13

Проверка формы ASP.net MVC

0 голосов
/ 10 сентября 2009

Я прошел большую часть проверки формы для asp.net mvc, такой как IDataErrorInfo, Xval, ValidationToolkit и т. Д. Это относится к телефонным номерам или проверке кредитных карт, где ваша модель будет иметь свойство с именем «Телефон» или «CreditCardNumber», но в интерфейсе пользователя / представлении значения будут отображаться в трех текстовых полях (путем разделения 3-3-4 в каждом текстовом поле). ). Итак, как получить эти три входа в поле «Телефон» и проверить их отдельно в модели, как

  1. Первый ввод - не может начинаться с 0
  2. второй вход - должен иметь 3 цифры.
  3. третий вход - должен иметь 4 цифры.

затем отобразить / добавить стиль ошибки для всех трех текстовых полей, используя любую из приведенных выше проверок (предпочтительнее использовать IDataErrorInfo)

Дайте мне знать, если какой-нибудь другой поток имеет решения.

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 11 сентября 2009

Могу я уточнить ваш вопрос? Вы спрашиваете, как разделить одно свойство модели на несколько частей дисплея для пользовательского интерфейса и в то же время сохранить знания о нескольких частях, когда ваша модель самостоятельно проверяет одно свойство?

Я думаю, что это две разные проблемы . Последняя представляет собой простую проверку правильности регулярного выражения , которую можно применить к проверке вашей модели. Например, блок приложения проверки предоставляет поддержку для этого. Проверьте этот блог Дэвида Хейдена .

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

Однако вы должны рассматривать две проблемы как разные: ваша модель всегда будет хотеть иметь возможность проверить себя независимо от того, откуда поступили данные (GUI, веб-сервис, импорт файлов и т. Д.), А разделение по трем полям просто требование этой конкретной веб-страницы.

0 голосов
/ 10 сентября 2009

Скотт Хансельман написал статью о разделении одного свойства в модели на несколько полей в пользовательском интерфейсе здесь:

Дата и время разделения

Что может вам помочь.

0 голосов
/ 10 сентября 2009

Я бы разделил проблему - пусть объект пользовательского интерфейса проверяет базовые вещи (например, эти три поля не пусты), а затем передает реальную проверку на серверную сторону после того, как вы объединили поля в настоящий CC номер или номер телефона. Да, там может быть немного повторений, но это, вероятно, проще, чем бороться с различными структурами валидации, чтобы заставить их делать то, чего они на самом деле не хотят.

0 голосов
/ 10 сентября 2009

Почему бы не иметь регулярные выражения для этих 3 полей ввода?

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