MVC中的错误处理

jga*_*fin 5 error-handling asp.net-mvc asp.net-mvc-3

我在MVC中使用错误处理已经困难了几天.我仍然没有做对.(我也在这里阅读了大部分问题并用Google搜索,直到我的手指流血)

我想做的事:

  1. 使用标准[Authorize]属性
  2. 将所有错误重定向到我的错误控制器(包括未经授权)
  3. 在我的错误控制器中每个HTTP错误都有一个操作.

我不想做的事:

  1. 放上[ErrorHandler]我的所有控制器(它可以在我的基础控制器上使用)吗?
  2. 使用自定义Authorize属性.

实际上,只要我让#1-3工作,我就可以做任何必要的事情(包括NOT列表).

我尝试过的:

  1. 运用 Application_Error
  2. 运用 Controller.HandleUnknownAction
  3. 运用 Controller.OnException
  4. 使用[ErrorHandler]我的控制器
  5. CustomErrors在web.config中打开/关闭

猜猜我需要这些或其他东西的组合?

fre*_*nky 2

您可以使用自定义过滤器,只需扩展 ErrorHandlerAttribute 并使其了解您的错误控制器。而不是将其添加为内部的全局过滤器Application_Start

GlobalFilters.Filters.Add(new CustomAErrorHandlerAttribute());
Run Code Online (Sandbox Code Playgroud)