如果自定义重定向重定向到控制器,则访问异常

时间:2012-10-30 11:21:07

标签: asp.net-mvc http error-handling

我正在使用MVC4,并且希望能够从ontroller中抛出HttpExceptions,并在单独的控制器中处理它们。

我为此设置了<customErrors mode="On" defaultRedirect="/Error"/>。这有效,但在我的控制器中,我希望能够访问异常。

我希望有两种模式:

  1. 处理HttpException的实例,以便从控制器中抛出HttpException并相应地处理它

  2. 处理所有其他错误。

  3. 如果是第一个,我想向useragent提供适当的状态代码,可能还有一个视图。在第二种情况下,我想呈现状态为500的useragent,并显示带有可选消息的默认视图。

    为此,我想我需要访问异常数据 - 至少,我想不出任何其他正确的方法来做到这一点。

    设置此方法的正确方法是什么?我知道在MVC中有关于错误处理的其他问题很多,但似乎没有人回答这些问题。

1 个答案:

答案 0 :(得分:1)

 but in my controller I would like to be able to access the exception.

您是否尝试过Server.GetLastError

Exception ex = Server.GetLastError();

Server.GetLastError() - 应该在global.asax的Application_Error中使用,在这种情况下你可以处理像described here这样的最后一个错误,除此之外你应该删除

filters.Add(new HandleErrorAttribute());
在FilterConfig.cs中

了解更多信息:

Application_Error not firing when customerrors = "On"

ASP.NET custom error page - Server.GetLastError() is null

http://www.secretgeek.net/custom_errors_mvc.asp

http://devstuffs.wordpress.com/2010/12/12/how-to-use-customerrors-in-asp-net-mvc-2/