0

我必须遵循一定的文件夹结构(/countrycode/language/),所以我的路线设置如下

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 }
);

我在该控制器中有一个控制器和多个操作。当我尝试重定向到某个操作或链接到视图中的某个操作时,URL 始终以 /us/en/ 开头,即使我当前位于 /fr/fr/ 中。

例如,如果当前路线是 /fr/fr/

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

一切都结束了

/us/en/fooAction
/us/en/barAction
/us/en/

如何使这些方法链接到正确的 URL?

4

1 回答 1

1

好的,而不是:

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

我需要使用:

@Html.RouteLink("fooText", "fr-fr", new { controller = "XXX", action = "fooAction" })
于 2013-05-13T10:34:33.857 回答