2010-06-10 3 views
9

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

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

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

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

ответ

4

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

Возможно;)

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

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

Смежные вопросы