使用全局asax重定向到自定义错误页面

时间:2015-08-11 15:22:38

标签: asp.net-mvc error-handling

我有一个Application Error方法,目前将用户重定向到一个返回一个视图的Action。现在这很棒,但是我想根据从全局asax返回的错误代码重定向用户,然后显示不同的视图。虽然我不确定如何将错误代码传递给控制器​​。

目前我有这个:

全球性的asax:

  void Application_Error(object sender, EventArgs e) {
            Exception TheError = Server.GetLastError();
            Response.Clear();
            Server.ClearError();
            // Avoid IIS7 getting in the middle
            Response.TrySkipIisCustomErrors = true;

            if (TheError is HttpException && ((HttpException)TheError).GetHttpCode() == 404) {
                Response.Redirect("~/Error", true);
            }
            else if (TheError is HttpException && ((HttpException)TheError).GetHttpCode() == 500) {
                Response.Redirect("~/Error", true);
            }
            else {
                Response.Redirect("~/Error", true);
            }

控制器:

 public class ErrorController : Controller
    {
        // GET: Error
        public ActionResult NotFound()
        {
            Response.TrySkipIisCustomErrors = true;
            Response.StatusCode = 404;
            return View();
        }
        public ActionResult ServerError() {
            Response.TrySkipIisCustomErrors = true;
            Response.StatusCode = 500;
            return View();
        }
        public ActionResult UserTimeOut() {
            Response.TrySkipIisCustomErrors = true;
            return View();
        }
    }

但我只是想用路由值(包括错误代码)重定向到Error控制器。

如果您需要更多详情,请告诉我。

0 个答案:

没有答案