2011-03-28 63 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