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" });
原文地址:https://www.cnblogs.com/yexinw/p/3009462.html