【问题标题】:redirect from Application_Error从 Application_Error 重定向
【发布时间】:2011-07-11 03:26:34
【问题描述】:

如何从Application_Error 重定向到另一个页面?

目前我在做

Response.Redirect("~/Account/LogOn");

但我想做一些事情,比如RedirectToAction()

【问题讨论】:

    标签: c# asp.net-mvc url-redirection


    【解决方案1】:

    Application_Error 并不是真正设计用于处理 MVC 应用程序中的错误的方法。

    首选的方法是:

    更多有用的链接:

    另外,如果您现在不使用 ELMAH,我建议您使用它。您可以将其作为 NuGet 包获取。

    【讨论】:

      【解决方案2】:
      HttpContext.Current.Response.RedirectToRoute(...)
      

      【讨论】:

      • 应用程序启动完成前上下文不可用。在处理全局错误的大多数情况下,这将在运行时抛出异常。不知道为什么这么多投票,这不是一个好的答案。
      【解决方案3】:
      var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext).Action("ServerError", "Error");
      
      Response.Redirect(urlHelper, true);
      

      【讨论】:

        【解决方案4】:

        更不用说不应该重定向错误 - 你不想在那里发送 HTTP 3xx 标头,当事情真的全面下降时,你可能会有讨厌的重定向循环。

        【讨论】:

        • 有很多很好的理由来重定向“错误”。例如,IIS 将 404 视为错误,并且在很多情况下您想要永久或其他重定向而不是响应 404 等。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-15
        • 1970-01-01
        • 2011-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多