我们正在创建MVC3应用程序。我们正在使用默认编辑器和模型状态验证。我们需要记录应用程序错误,但我们更倾向于通过某种全局处理程序来完成。我们有一个处理未处理异常的处理程序,但我们也想记录模型状态错误。模型状态错误的全局处理程序
问题是:我们在哪里可以附加我们的记录器来记录这些错误?我们可以以某种方式覆盖ModelState
,或检测模型用于查看模型错误时的情况吗?
我们正在创建MVC3应用程序。我们正在使用默认编辑器和模型状态验证。我们需要记录应用程序错误,但我们更倾向于通过某种全局处理程序来完成。我们有一个处理未处理异常的处理程序,但我们也想记录模型状态错误。模型状态错误的全局处理程序
问题是:我们在哪里可以附加我们的记录器来记录这些错误?我们可以以某种方式覆盖ModelState
,或检测模型用于查看模型错误时的情况吗?
全局过滤器将最有可能去的最佳途径。 来自所以这里更多:asp.net mvc 3 handleerror global filter always shows IIS status 500 page
或检出的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>
}
我知道如何处理异常......问题是当模型状态无效时处理... –
也许尝试检查了全局过滤器如下所示: http://stackoverflow.com/questions/4842721/asp-net -mvc-3-handleerror-global-filter-always-shows-iis-status-500-page –
谢谢..那很好..你能否把它作为答案,然后我会接受它) –
回答补充谢谢! –