2010-11-24 3 views
4

У нас есть наша настройка классов POCO с использованием аннотаций данных.Проверка части модели с помощью ASP.NET MVC и аннотации данных

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

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

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

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

С уважением

Джейми

ответ

0

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

+0

Но вот во лжи проблема для меня. Мы уже указали валидацию, требуемую для класса POCO, и не будем ли мы дублировать эту деятельность, помещая ее в другие классы? Я ценю, что мы можем разделить все вещи, но модель определяет через аннотации то, что требуется, а что нет. – jamie 2010-11-24 14:22:00