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

时间:2011-08-25 08:11:55

标签: c# asp.net asp.net-mvc asp.net-mvc-3

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

问题是:我们在哪里可以附上我们的记录器来记录这些错误?我们可以以某种方式覆盖ModelState或检测提供给查看的模型是否存在模型错误的情况吗?

2 个答案:

答案 0 :(得分:1)

全局过滤器很可能是您的最佳选择。 更多来自SO:asp.net mvc 3 handleerror global filter always shows IIS status 500 page

或者在这里结帐msdn doc: http://msdn.microsoft.com/en-us/library/gg416513(v=vs.98).aspx

答案 1 :(得分:-1)

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

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>
}
相关问题