我必须遵循一定的文件夹结构(/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?