【发布时间】:2014-02-20 01:10:35
【问题描述】:
我有一个 MVC4 应用程序,我在 RouteConfig 中定义的路由可以正常工作,如下所示:
routes.MapRoute(
"LocalizedDefault", "{lang}/{homePage}",
new { controller = "Home", action = "Index", pageCode = "home" },
new {lang = @"(en|es)", homePage = @"(home|inicio)"}
);
routes.MapRoute(
"Flowers",
"{lang}/{page}",
new {controller = "Plants", action = "Flowers", pageCode = "flowers"},
new {lang = @"(en|es)", page= @"(flowers|flores)"}
);
/* ... more routes ... */
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
您可以看到每条路由都有一个参数,我需要更改我的语言(我的业务逻辑),问题是当我放置没有任何参数(如 http://www.mydomain.com)的 url 时,它会加载我的默认页面,但我可以' t改变语言,因为我没有我的页面参数,然后我改变我的路线:
routes.MapRoute(
"Flowers",
"{lang}/{page}",
new {controller = "Plants", action = "Flowers", pageCode = "flowers"},
new {lang = @"(en|es)", page= @"(flowers|flores)"}
);
/* ... more routes ... */
routes.MapRoute(
"Default",
"{lang}/{page}",
new { controller = "Home", action = "Index", pageCode = "home" },
new {lang = @"(en|es)", page = @"(home|inicio)"}
);
现在我的网站在调用http://www.mydomain.com 时可以更改其语言,但其他路线不再起作用(例如:http://www.mydomain.com/en/flowers)
【问题讨论】:
标签: c# asp.net-mvc-4 routes