従わなければならない特定のフォルダー構造 (/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 }
);
コントローラーが 1 つと、そのコントローラーに複数のアクションがあります。アクションにリダイレクトしようとしたり、ビュー内のアクションにリンクしようとすると、現在 /fr/fr/ にいる場合でも、URL は常に /us/en/ で始まります。
例: 現在のルートが /fr/fr/ の場合
@Html.ActionLink("fooText", "fooAction")
@Url.Action("barAction")
return RedirectToRoute("Index");
すべてが次のようになります
/us/en/fooAction
/us/en/barAction
/us/en/
これらのメソッドを正しい URL にリンクするにはどうすればよいですか?