2011-03-28 70 views
0

我正在尝试为包含2种或更多种语言的网站创建语言切换。ASP MVC 2通过url更改语言

当我遵循默认路由(控制器/操作)Html.ActionLink("NL", ViewContext.RouteData.Values["action"].ToString(), new { language = "nl-NL" }, null)它是否工作。但是,当从具有参数的Action中调用它时,它(逻辑上)仅使用当前的Action创建到Controller的链接。参数被忽略。

我目前的路线:

routes.MapRoute(
      "ProjectCategory", 
      "{language}/Projects/{action}/{slug}", 
      new { controller = "Projects", action = "Detail", slug = string.Empty, language = "en-US" } 
     ); 

Html.ActionLink创建链接:

http://localhost/mysite/nl-NL/Projects/Detail/ 

如何解决这个问题呢?

回答

1
HttpContext.Current.Request.Path.Replace("/en-US/", "/nl-NL/") 

这不是最优雅的方式,但为我工作。 (当然你应该用当前的lang代替en-US

+0

谢谢。也适用于我^^ – MysticEarth 2011-03-29 09:11:04