MVC处理404s并设置默认错误页面

Sir*_*eno 1 model-view-controller asp.net-mvc

我想在MVC中启用默认路由.

我希望每个404请求重定向到DefaultController DefaultRout()

我发现如何能够捕获所有路径以处理ASP.NET MVC的'404 page not found'查询?

但{*url}不能正常工作我得到404并且没有重定向到默认页面.

我的代码:

public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
  routes.IgnoreRoute("{resource}.ascx/{*pathInfo}");
  routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
  routes.IgnoreRoute("{resource}.gif/{*pathInfo}");

  //http://localhost:4775/BW/A/Tasks
  routes.MapRoute("Pages", "A/{controller}", new { controller = "Tasks", action = "InitPage" });

  routes.MapRoute(
    "404-PageNotFound",
    "{*url}",
    new { controller = "Default", action = "DefaultRout" }
  );
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢

拉斐尔

Jus*_*liz 6

你不能使用你的web.config吗?我认为这会更容易:

<customErrors mode="On" defaultRedirect="/error/default">
  <error statusCode="403" redirect="/error/restricted"/>
  <error statusCode="404" redirect="/Default/DefaultRoute"/>
  <error statusCode="500" redirect="/error/problem"/>
</customErrors>
Run Code Online (Sandbox Code Playgroud)