最新の未処理のエラー アプリケーションをキャッチし、エラーが発生するたびにエラー ページにリダイレクトしたいと考えています。しかし、「RedirectToRoute に一致するルートが見つかりませんでした」というエラーが表示されました。私のコードの問題は何ですか?これが私の実装です:
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 に一致するルートが見つかりませんでした」というエラーが表示されました。