我想捕获最新的未处理错误应用程序,并在发生错误时将其重定向到错误页面。但我收到错误“找不到 RedirectToRoute 的匹配路由”。我的代码有什么问题?这是我的实现:
全球.asax
routes.MapRoute(
"ErrorHandler",
"{ErrorHandler}/{action}/{errMsg}",
new {controller="ErrorHandler", action = "Index", errMsg = UrlParameter.Optional }
);
申请_结束
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();
}
错误处理器控制器
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 的匹配路由”。