ASP.NET MVC的Global.asax文件中的Application_Start()方法里面的RegisterRoutes(RouteTable.Routes)是用来注册路由的。
默认的方法如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我们可以自己添加自定义的路由规则,如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
#region 我的路由
routes.MapRoute(
name: "NotFound", // Route name
url: "notfound", // URL with parameters
defaults: new { controller = "Home", action = "NotFound", id = "" } // Parameter defaults
);
routes.MapRoute(
name: "Error",
url: "error",
defaults: new { controller = "Home", action = "Error", id = "" }
);
#endregion
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
用以上路由设置,若在网址后面输入了/notfound,则会访问Homl控制器中的NotFound的Action 。
Error也是同理。