模型状态错误的全局处理程序

本文关键字:处理 程序 全局 状态 错误 模型 | 更新日期: 2023-09-27 18:06:31

我们正在创建mvc应用程序。我们使用默认编辑器和模型状态验证。我们需要记录应用程序错误,但我们更喜欢通过某种全局处理程序来实现。我们有一个处理未处理异常的处理程序,但是我们也想记录模型状态错误。

问题是:我们可以在哪里连接我们的记录器来记录这些错误?我们是否可以以某种方式覆盖ModelState或检测当模型服务于视图有模型错误的情况?

模型状态错误的全局处理程序

全局过滤器很可能是您最好的选择。asp.net mvc 3 handleerror全局过滤器总是显示IIS状态500页

或者在这里查看msdn文档:http://msdn.microsoft.com/en-us/library/gg416513 (v = vs.98) . aspx

创建一个属性来处理错误并在控制器中注册,

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>
}