我想捕獲最新的未處理的錯誤應用程序,並在發生錯誤時將其重定向到錯誤頁面。但是我得到錯誤「找不到匹配的RedirectToRoute路由」。我的代碼有什麼問題?下面是我實現的:MVC路由錯誤處理程序
的Global.asax
routes.MapRoute(
"ErrorHandler",
"{ErrorHandler}/{action}/{errMsg}",
new {controller="ErrorHandler", action = "Index", errMsg = UrlParameter.Optional }
);
Application_End
protected void Application_Error(object sender, EventArgs e)
{
var strError = Server.GetLastError().Message;
if (string.IsNullOrWhiteSpace(strError)) return;
Response.RedirectToRoute("ErrorHandler", new {controller="ErrorHandler", action = "Index", errMsg = strError });
this.Context.ClearError();
}
的ErrorHandler控制器
public class ErrorHandlerController : Controller
{
public ActionResult Index(string errMsg)
{
ViewBag.Exception = errMsg;
return View();
}
}
爲了測試錯誤處理程序上我的家庭控制器
public class HomeController : Controller
{
public ActionResult Index()
{
//just intentionally added this code so that exception will occur
int.Parse("test");
return View();
}
}
更新
錯字 「位指示」。感謝drch。但仍然出現錯誤「找不到與RedirectToRoute匹配的路由」。
只是胡亂猜測,但你嘗試命名路線不同的東西,即ErrorHandlerRoute? – dreza
@dreza。我最近嘗試了你的建議,不幸的是我仍然得到了「找不到與RedirectToRoute匹配的路線」。 –