MVC2 DataAnnotations с проверкой на стороне сервера - PullRequest
3 голосов
/ 07 апреля 2010

Как вы проверяете сущность, содержащую аннотации данных, не используя библиотеку MVC? Использование Model.IsValid хорошо, когда вы находитесь на уровне презентации, но что делать, когда вы хотите убедиться, что модель действительна на уровне домена / бизнеса? Нужна ли отдельная структура валидации, или мне не хватает простого способа?

Спасибо за любую помощь,

Mark

Ответы [ 2 ]

1 голос
/ 19 мая 2011

Полагаю, вы имеете в виду ModelState.IsValid под Model.IsValid, верно?Ну, DataAnnotions вообще не зависят от MVC, поэтому вы всегда можете использовать интерфейс IValidatableObject .

Или, возможно, класс Validator будет более подходящим,использование Validator.ValidateObject (объект, ValidationContext) .

0 голосов
/ 13 марта 2011

Я написал свою логику проверки с использованием простого c #, мой бизнес-уровень содержит эти проверки, и я использую блоки try и catch для всего бизнес-уровня. Уровень представления улавливает эти пользовательские исключения, поэтому ошибки выводятся на экран пользователю. Я сохранил только базовую проверку в аннотациях данных, например, [Требуется] в основном для вызовов ajax и для уведомления пользователей о вводе данных в необнуляемые поля, чтобы моя бизнес-логика оставалась на среднем уровне, она оставалась согласованной, она оставалась только в одном месте, к которому я могу обратиться.

...