默认路由:
routes.MapRoute(
"Default", // 路由名称
"{controller}/{action}/{id}", // 带有参数的 URL
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值
);
业务逻辑相关:
routes.MapRoute(
"studentRoute", // 路由名称
"student/{action}/{stuId}", // 带有参数的 URL
new { controller = "student", action = "Index", stuId = UrlParameter.Optional } // 参数默认值
);
带限定条件的路由(匹配年月日):
// routes.MapRoute(
// "test", // 路由名称
// "{year}/{month}/{day}", // 带有参数的 URL
// new { controller = "Test", action = "Index" },
// new { year = @"\d{4}", month = @"\d{2}", day = @"\d{2}" }// 参数默认值
//);
匹配任何路径:
routes.MapRoute(
"test1", // 路由名称
"{*extra}", // 带有参数的 URL
new { controller = "Test", action = "Index" }
);
注册时候, 注意注册的顺序,把特殊情况的放在前面。例如 a/b/c的形式应放在 {controller}/{action}/{id}的前面,因为后面路由包含了前者的匹配情况。
asp.net route 机制的调试:
1.下载RouteDebug.dll
2. 在protected void Application_Start()中添加:
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
3.运行,就可以看到所有注册的路由以及当前路径的支持情况