Добавить комментарий - CodeHelper

Добавить комментарий

Нужно создать класс, унаследованный от DefaulModelBinder и перекрыть метод OnModelUpdated:

public class ValidationModelBinder : DefaultModelBinder
{
    protected override void OnModelUpdated(
              ControllerContext controllerContext,
              ModelBindingContext bindingContext)
    {
        // Получаем объект, который нужно валидировать
        var objectToValidate = bindingContext.Model;

        // Получаем объект ModelState для регистрации ошибок
        var modelState = bindingContext.ModelState;

        // ... код валидации ...
    }
}

Следующим шагом нужно зарегистрировать этот binder. В файле Global.asax.cs в методе Application_Start нужно добавить строку:

ModelBinders.Binders.Add(typeof(TypeToValidate), new ValidationModelBinder());

Теперь, если в каком-либо контроллере есть метод, принимающий объект типа TypeToValidate, то перед вызовом этого метода объект будет автоматически валидироваться.

Внимание! Вы собираетесь отправить информацию от имени анонимного пользователя.
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.