Я использую xVal с большим успехом.
Самое лучшее, что вы можете полностью автоматизировать проверку:
- поместите
DataAnnotations
(или специальные правила) в классы POCO вашего бизнес-уровня (если они есть) или в метаданные классов сущностей buddy классы, если вы используете сущности вплоть до уровня контроллера
- написать ActionFilter, который будет автоматически проверять параметры для действий вашего контроллера - лучше всего, если все ваши POCO (или сущности) реализуют определенный интерфейс, который определяет метод
Validate()
, фильтр вызывает этот метод и заполняет ModelState.Errors
, если проверка не удалась.
- Добавьте
if (ModelState.IsValid) { ... }
в действие вашего контроллера, которое должно работать по-другому, когда модель недействительна
- Поместите <% = Html.ValidationMessage (...)%> в свои представления, которые будут отображать ошибки проверки
- При необходимости добавьте проверку клиента xVal к вашим представлениям
Таким образом, вы настроили автоматическую проверку объектов. Все действия вашего контроллера будут проверять достоверность модели.
В Asp.net MVC 2 будет что-то очень похожее на xVal, уже встроенное в фреймворк, поэтому вам решать, какую версию вы используете.