假设我将以下代码放在ASP.NET MVC站点的Master页面中:
throw new ApplicationException("TEST");
即使我的控制器上放置了[HandleError]属性,此异常仍会冒泡.我该如何处理这样的错误?我希望能够路由到错误页面,仍然能够记录异常详细信息.
处理这类事情的最佳方法是什么?
编辑:我正在考虑的一个解决方案是添加一个新的控制器:UnhandledErrorController.我可以在Global.asax中放入Application_Error方法然后重定向到此控制器(它决定如何处理异常)?
注意:customErrors web.config元素中的defaultRedirect不传递异常信息.
解决方法
由于MVC建立在asp.net之上,你应该能够在
web.config中定义一个全局错误页面,就像在web表单中一样.
<customErrors mode="On" defaultRedirect="~/ErrorHandler" />