您的位置:首页 > 其它

.net mvc 注册路由的几种常见方式

2015-01-19 10:56 260 查看
//第一种:最常用方式

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

);

       //第二种:构造路由然后添加,这个可以自己实现  RouteHandler,高端人士的选择

       Route myroute = new Route "{controller}/{action}, new MvcRouteHandler());  

       routes.Add(MyRoute0, myroute);  

       //第三种:跨命名空间路由,多人协作的神器,当然如果你项目中引入area(貌似orchard就是这种模式),这个就很有用了

       routes.MapRoute(  

           AddContollerRoute,  

           Home/{action}/{id}/{*catchall},  

           new { controller = Home, action = Index, id = UrlParameter.Optional },  

           new[] { URLsAndRoutes.AdditionalControllers }  

       );  

       routes.MapRoute(  

           MyRoute1,  

           {controller}/{action}/{id}/{*catchall},  

           new { controller = Home, action = Index, id = UrlParameter.Optional },  

           new[] { URLsAndRoutes.Controllers }  

       );  

       //第四种:可变长度路由 + 正则表达式匹配路由  

      //如果你还不了解正则,赶紧去了解一下,能解决很多貌似复杂的问题

       routes.MapRoute(  

           MyRoute2,  

           {controller}/{action}/{id}/{*catchall},  

           new { controller = Home, action = Index, id = UrlParameter.Optional },  

           new { controller = ^H.*, action = ^Index$|^About$ },  

           new[] { URLsAndRoutes.Controllers }  

       );  

       //第五种:指定请求方法  

       routes.MapRoute(MyRoute3, {controller}/{action}/{id}/{*catchall},  

           new { controller = Home, action = Index, id = UrlParameter.Optional },  

           new { controller = ^H.*, action = Index|About, httpMethod = new HttpMethodConstraint(GET) },  

           new[] { URLsAndRoutes.Controllers }  

       );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: