Я реализую стратегию обработки ошибок в приложении ASP.Net MVC 3. Я написал атрибут, реализующий IExceptionFilter и т. Д. Это правильно работает, обрабатывая исключения, бросая в метод действия и возвращает информацию об исключении, сериализованную как JSON.Формирование поведения UpdateModel из ASP.NET MVC 3 Метод привязки модели по умолчанию для параметра метода
Я хотел бы использовать этот атрибут, чтобы обрабатывать ошибки проверки, найденные связующим веществом модели при передаче данных в Action Method. Например, если я POST-объект к методу действий, который десериализуется как параметр метода действия, я хотел бы, чтобы он выдавал исключение, если ошибка проверки правильна, как это делает UpdateModel. В настоящий момент стандартное связующее устройство, похоже, ведет себя как TryUpdateModel, просто перелистывая ModelState.IsValid, а не бросая исключение.
[ActionExceptionJsonHandler]
public ActionResult CreateSomething(SomethingViewData account)
{
// If model binding fails validation an exception should be thrown and no code is executed here
// Do stuff here
}
Если модель по умолчанию Связыватель сгенерировала исключение таким же образом, как UpdateModel делает то IExceptionFilter бы поймать его и обрабатывать возвращения ошибки проверки клиенту. Без этого разработчик должен написать код для проверки ModelState и т.д.
Так нижняя линия у меня есть две смежные вопросы:
- Есть ли способ иметь модель связующих по умолчанию сгенерирует исключение при сбое проверки?
- Любые мысли об использовании этого подхода в сравнении с ручной проверкой ModelState в каждом методе действия?
Спасибо.