我希望在我的global.asax中使用response.redirecttoroute实现自定义路由,但是它没有起作用。我在我的RouteConfig中有以下内容:
routes.MapRoute(
name: "Error",
url: "Error/{action}/{excep}",
defaults: new { action = "Index", excep = UrlParameter.Optional }
);
在我的global.asax文件中,我执行以下操作:
Response.RedirectToRoute("Error", new { action="Index", excep=ex.Message });
在我的ErrorController中,我有:
public ActionResult Index(string excep)
{
ViewBag.Exception = excep;
return View();
}
我在错误的Index视图中调用ViewBag.Exception来显示异常。
当我使用以下代码:
Response.Redirect("/Error/Index/0/"+ex.Message, true);
然后在我的控制器中使用:
public ActionResult Index(int? id,string excep)
{
ViewBag.Exception = excep;
return View();
}
它能够工作,但这是使用默认路由而非我想要的。为什么重定向可以正常工作,但重定向到路由却不行?