我有一个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控制器。
如果您需要更多详情,请告诉我。