Глобальный обработчик ошибок состояния модели - PullRequest
2 голосов
/ 25 августа 2011

Мы создаем приложения MVC3. Мы используем редакторы по умолчанию и проверку состояния модели. Нам нужно регистрировать ошибки приложения, но мы предпочитаем делать это каким-то глобальным обработчиком. У нас есть обработчик необработанных исключений, но мы также хотим регистрировать ошибки состояния модели.

Вопрос: где мы можем прикрепить наш регистратор для регистрации таких ошибок? Можем ли мы каким-то образом переопределить ModelState или обнаружить ситуацию, когда модель, используемая для просмотра, имеет ошибки модели?

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Глобальные фильтры, скорее всего, будут вашим лучшим способом.Больше от SO здесь: asp.net mvc 3 globalerror глобальный фильтр всегда показывает страницу состояния IIS 500

Или извлеките документ MSDN здесь: http://msdn.microsoft.com/en-us/library/gg416513(v=vs.98).aspx

0 голосов
/ 25 августа 2011

Создайте атрибут для обработки ошибки и зарегистрируйте его в контроллере,

public class ErrorHandlerAttribute : HandleErrorAttribute
    {
        public override void OnException(ExceptionContext exceptionContext)
        {
           LogManager.GetLogger("somelogger").Error(exceptionContext.Exception.Message,exceptionContext.Exception);
            base.OnException(exceptionContext);
        }
    }

зарегистрируйте его в контроллере следующим образом,

[EwmsErrorHandler(ExceptionType = typeof(base type of exception to handle), View = view to redirect)]
public class MyController : Controller
{
<controller code>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...