2013-05-13 20 views
0

我有一定的文件夾結構,我必須遵循(/ COUNTRYCODE /語言/),所以我有我的路線設置類似於下面MVC 3個自定義路線 - 重定向,行動,ActionLink的有不正確的URL

routes.MapRoute(
    "en-us", 
    "us/en/{action}/{id}", 
    new { Controller = "XXX", action = "Index", cc = "us", ll = "en", id = UrlParameter.Optional } 
); 

routes.MapRoute(
    "fr-fr", 
    "fr/fr/{action}/{id}", 
    new { Controller = "XXX", action = "Index", cc = "fr", ll = "fr", id = UrlParameter.Optional } 
); 

routes.MapRoute(
    "de-de", 
    "de/de/{action}/{id}", 
    new { Controller = "XXX", action = "Index", cc = "de", ll = "de", id = UrlParameter.Optional } 
); 

我在該控制器中有單個控制器和多個動作。當我嘗試重定向到動作或鏈接到視圖中的動作時,即使我當前位於/ fr/fr /中,該URL始終始於/ us/en /。

例如如果當前的路徑是/ FR/FR/

@Html.ActionLink("fooText", "fooAction") 
@Url.Action("barAction") 
return RedirectToRoute("Index"); 

所有最終成爲

​​

我怎樣才能讓這些方法鏈接到正確的網址是什麼?的

回答

1

OK代替:

@Html.ActionLink("fooText", "fooAction") 

我需要使用:

@Html.RouteLink("fooText", "fr-fr", new { controller = "XXX", action = "fooAction" })