MVC4常见路由的处理方式

//直接方法重载+匿名对象
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

            //构造路由然后添加
            Route myroute = new Route("{controller}/{action}", new MvcRouteHandler());
            routes.Add("MyRoute0", myroute);

            //跨命名空间路由
            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" }
            );

你可能感兴趣的:(路由,MVC4)