mvc how to change default route

后端 未结 3 506
伪装坚强ぢ
伪装坚强ぢ 2021-01-16 14:06

I\'m going through the Pro Asp.net mvc3 framework book. I wanting to change the default route so that I can have a different home page. I\'ve added a new controller called P

3条回答
  •  孤城傲影
    2021-01-16 14:53

    I was able to get it to work like this:

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
        routes.MapRoute(null, "", new {controller = "Pages", action = "Home"});
    
        //routes.MapRoute(null,
        //                "", // Only matches the empty URL (i.e. /)
        //                new
        //                    {
        //                        controller = "Product",
        //                        action = "List",
        //                        category = (string)null,
        //                        page = 1
        //                    }
        //    );
    
        routes.MapRoute(null,
                        "Page{page}", // Matches /Page2, /Page123, but not /PageXYZ
                        new {controller = "Product", action = "List", category = (string) null},
                        new {page = @"\d+"} // Constraints: page must be numerical
            );
    
        routes.MapRoute(null,
                        "{category}", // Matches /Football or /AnythingWithNoSlash
                        new {controller = "Product", action = "List", page = 1}
            );
    
        routes.MapRoute(null,
                        "{category}/Page{page}", // Matches /Football/Page567
                        new {controller = "Product", action = "List"}, // Defaults
                        new {page = @"\d+"} // Constraints: page must be numerical
            );
    
    
        //routes.MapRoute(null, "{controller}/{action}");
    
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new {controller = "Pages", action = "Home", id = UrlParameter.Optional} // Parameter defaults
            );
    
        //routes.MapRoute("MyRoute", "{controller}/{action}",
        //    new { controller = "Pages", action = "Home" });
    

    is there a better way?

提交回复
热议问题