2011-03-28 19 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を現在のlangに置き換えてください)

+0

ありがとうございました。私のためにも働きます^^ – MysticEarth