Arbejdsglæde
Arbejdsglæde

Reputation: 14088

Asp MVC 4 MapRoute specific url

I have web site root structure controllers for work with culture part in url, like mysite.com/en/controller/action/id but for one specific controller I don't want to use culture prefix. mysite.com/controller/action/id How I can do it ? I have write it MyRoute but it dos't work

  routes.MapRoute(
                    name: "MyNewRoute",
                    url: "MyNewRoute/",
                    defaults: new { controller = "MyNewRoute", action = "Data", id = UrlParameter.Optional }
                    );

                routes.MapRoute(
                    name: "MemberTransfer",
                    url: "en/Member/Transfer",
                    defaults: new { culture = "en", controller = "Member", action = "Transfer", id = UrlParameter.Optional }
                    );

                routes.MapRoute(
                    name: "ExecuteTransfer",
                    url: "en/Member/ExecuteTransfer",
                    defaults: new { culture = "en", controller = "Member", action = "ExecuteTransfer", id = UrlParameter.Optional }
                    );

                routes.MapRoute(
                    name: "Default",
                    url: "",
                    defaults: new { culture = "en", controller = "Home", action = "Maintenance", id = UrlParameter.Optional }
                    );

                routes.MapRoute(
                    name: "HomePage",
                    url: "{culture}/{*pathInfo}",
                    defaults: new { culture = "en", controller = "Home", action = "Maintenance", id = UrlParameter.Optional }
                    );

Upvotes: 0

Views: 808

Answers (2)

Roman Pushkin
Roman Pushkin

Reputation: 6079

Your "Default" route is overriding the last one. Try to swap the last two routes.

Btw, you can use handy route debugger from Phil Haack. It's really easy to set up and use (you just need to comment/uncomment one single line in your Global.asax.cs). It's absolutely must have tool for every Asp.Net MVC developer.

Upvotes: 1

Jonathan Bates
Jonathan Bates

Reputation: 1835

Swap your last two routes. Routes are evaluated top down, going with the first match, so you want to go from most specific to most generic in the order that you add them.

Upvotes: 1

Related Questions