我正在设法弄清楚MVC中的错误处理。
我正在寻找一种集中式的方法来捕获错误,记录错误,可能的情况下解决它们,必要的其他操作并最终向用户显示正确的 View 。

我想可以为此使用[HandleError]过滤器,但是我看不到将其路由到Controller/Action的任何方法。我看到的唯一选择是将其直接指向 View 。

最佳答案

MVC附带的HandleErrorAttribute是一个非常基本的IExceptionFilter。

您有几种选择可以实现我想您想要的。

您可以在操作/ Controller 上使用[HandleError(Type = typeof(MyException),View =“ErrorView”)]或实现自己的

HandleErrorAttribute不是很复杂。我认为MS建议您复制此代码并进行修改以适合您的要求。

OnException覆盖使您可以通过ExceptionContext访问您可能需要的所有信息- Controller ,操作,路由数据等。

记住要设置ExceptionHandled。然后,您可以将filterContext.Result设置为一个新的RedirectToAction实例,该实例重定向到您的ErrorController和操作-显然,您可以使用属性公开特定的 Controller 和操作。

关于c# - 使用ErrorController处理错误,而不是直接处理VI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/197414/

10-09 20:19
查看更多