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" });
posted @   易独  阅读(220)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2012-04-09 网站的几点原则
乐巴儿 一个有声音的公众号
长按,识别二维码,加关注
点击右上角即可分享
微信分享提示