mvc3路由设置
一、使用默认值的路由:
//配置默认的参数,当输入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" });