2009-09-10 2 views
0

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

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

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

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

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

ответ

0

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

+0

Не могли бы вы объяснить мне подробно? –

+0

Большинство систем проверки достоверности ошибок допускают использование регулярных выражений.Таким образом, вы можете создавать пользовательские те, которые проверяют ваши три правила, используя любую из этих заданных фреймворков. – Min

0

Скотт Hanselman был пост о расщеплении одного свойства в модели в нескольких областях на UI здесь:

Splitting Date and Time

Какой может быть какой-то помочь вам.

0

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

1

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

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

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

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