一、使用默認值的路由:
//配置默認的參數,當輸入http://localhost:4016/Home時,就會顯示Home/Index,當然可以定義兩個參數 //如果http://localhost:4016/Home/Index/?Page=1是有效的 //如果是http://localhost:4016/Home/Index/Page=1無效 routes.MapRoute("MyRoutes", "{controller}/{action}", new { action = "Index" });//
二、使用靜態路由片段(在域名后面加上一個常量,然后接控制器和方法)
//下面是靜態url和默認的混合使用,當輸入http://localhost:4016/Public/Home時,能顯示出來 routes.MapRoute("MyRoutes", "public/{controller}/{action}", new { action = "Index" });
//也可以使用下面的靜態url,http://localhost:4016/XHome
routes.MapRoute("MyRoutes", "X{controller}/{action}", new { action = "Index" });
三、路由順序
//由於路由具有順序性,當輸入url,http://localhost:4016/XHome/Index。會指定到404 routes.MapRoute("MyRoute", "{controller}/{action}",new { controller = "Home", action = "Index" }); routes.MapRoute("", "X{controller}/{action}");
四、定義自己的變量(不僅僅限於controller和action,還可以是id)
//ViewBag.Message = RouteData.Values["year"].ToString() + RouteData.Values["month"].ToString() + RouteData.Values["day"].ToString(); //在Index方法中加入上面的代碼,在view中輸出message,獲取年月日
routes.MapRoute("MyRoute", "{controller}/{action}/{year}/{month}/{day}",new { controller = "Home", action = "Index", year = "2013"
,month="04",day="17" });
五、定義可選參數
//最后一個為可選參數,經常和帶有默認值的action一起使用,即沒有最后一個參數的話,就使用action中的默認參數 routes.MapRoute("MyRoute", "{controller}/{action}/{id}", new { controller="Home",action="Index",id=UrlParameter.Optional});
六、指定命名空間
//當有兩個不同命名空間,但controller名卻相同時,為路由指定優先的命名空間,以找到合適的controller //最后面一個參數是數組,表示一個范圍,不代表查找先后次序。如果是數組中加入的是具有相同的controller,那么不能解決controller沖突
routes.MapRoute("MyRoute", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "RoutesDemo.Controllers" });