Валидация PART модели с помощью ASP.NET MVC и аннотаций данных - PullRequest
4 голосов
/ 24 ноября 2010

У нас есть настройки классов POCO с использованием аннотаций данных.

Для одного из этих классов мы используем несколько представлений, чтобы пользователь мог заполнить все свои данные. Например, если бы это был класс с именем пользователя и паролем в качестве свойств, мы бы на первой странице заставили пользователя указать свое имя пользователя, а на второй странице - свой пароль.

Теперь, если я использую полный класс POCO (который требует ввода имени пользователя и пароля), тогда, когда мы просим ModelState.IsValid получить false, поскольку пароль еще не был предоставлен, но мы знаем, что пароль будет поставлено на следующей странице!

Существует ли для нас общий способ проверки тех элементов модели, для которых должны быть указаны значения, а не всей Модели? Я знаю, что могу удалить ошибки для отдельных элементов из ModelState.

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

Привет

Джейми

Ответы [ 2 ]

4 голосов
/ 24 ноября 2010

Я полагаю, что подход Стива имеет дело с этим

http://blog.stevensanderson.com/2010/02/19/partial-validation-in-aspnet-mvc-2/

по сути он отфильтровывает те ключи, для которых нет входящих значений.

0 голосов
/ 24 ноября 2010

Попробуйте поставить проверку на классы ViewModel.Каждое представление будет иметь свой собственный класс ViewModel.Один с именем пользователя, другой с паролем.Не используйте модель, пока не соберете все необходимые данные.

...