2011-03-28 4 views
0

2 개 이상의 언어로 된 웹 사이트의 언어 스위치를 만들려고합니다.ASP MVC 2 URL로 언어 변경

기본 경로 (컨트롤러/동작)를 따르면 Html.ActionLink("NL", ViewContext.RouteData.Values["action"].ToString(), new { language = "nl-NL" }, null)이 작동합니다. 그러나 매개 변수가있는 작업에서 호출하면 현재 작업으로 컨트롤러에 대한 링크 만 생성합니다. 매개 변수는 무시됩니다.

나의 현재 경로 :

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/") 

가장 세련된 방식은 아니지만 저에게는 효과적입니다. (물론 당신은 현재의 언어로 en-US을 대체해야합니다)

+0

고마워요. 저를위한 작품도 ^^ – MysticEarth