Использование ViewModel в ASP.NET MVC с FluentValidation

Я использую ASP.NET MVC с Платформой Объекта ПОСТЕПЕННО классы и платформа FluentValidation. Это работает хорошо, и проверка происходит, как это должно (как будто я использовал DataAnnotations). Я даже получил клиентскую работу проверки. И я довольно доволен им.

Так как это - тестовое приложение, которое я пишу только, чтобы видеть, могу ли я получить новое технологическое сотрудничество (и изучить их по пути), я теперь готов экспериментировать с использованием ViewModels вместо того, чтобы просто передать фактическую Модель представлению. Я - планирование использования чего-то как AutoMapper в моем сервисе, чтобы сделать отображение назад и вперед от Модели до ViewModel, но у меня есть вопрос сначала.

Как это собирается влиять на мою проверку? Должны мои классы проверки (записанное использование FluentValidation) быть записанными против ViewModel вместо Модели? Или это должно произойти в обоих местах? Одно из грандиозных предприятий о DataAnnotations (и FluentValidation) было то, что у Вас могла быть проверка в одном месте, которое будет работать "везде". И это выполняет то обещание (главным образом), но если я начинаю использовать ViewModels, разве я не теряю ту способность и имею для возвращения к помещению проверки в двух местах?

Или я просто думаю об этом неправильно?

9
задан Brian McCord 10 June 2010 в 07:17
поделиться

1 ответ

Или я просто неправильно об этом думаю?

Вероятно;)

Если вы добавите весь код проверки к своим ViewModels, вы просто будете проверять их, а не ваши настоящие модели . Все, что вы действительно меняете, - это то, какие объекты могут перейти в недопустимое состояние.

Прямо сейчас я доволен только проверкой ViewModels и последующей передачей этой информации обратно на реальные уровни Models и DAO. Может ли ваш домен перейти в недопустимое состояние - это спорный вопрос, но пока этот метод отлично работает для меня. Проверка в одном месте и никаких недопустимых объектов в моем хранилище сохраняемости.

4
ответ дан 3 November 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: