ルート付き多言語ウェブアプリをやりたいと思います。.Netコアマルチ言語ルーティング
は、私は何をしたいのURLにあります。同じアクションを持つ それ製品/ ENおよび /prodotti 。
私は同じアクション/コントローラを持つ2つのdifferendルートを作成している:私は、私が使用theeseルートの1つを呼び出したいとき
routes.MapRoute(
name: "english",
template: "en/products",
defaults: new { controller = "home", action = "products" }
);
routes.MapRoute(
name: "italiano",
template: "it/prodotti",
defaults: new { controller = "home", action = "products" }
);
:
<a href="@Url.RouteUrl("english", new { Action = "home", Controller = "products"})">Products</a>
<a href="@Url.RouteUrl("italiano", new { Action = "home", Controller = "products"})">Prodotti</a>
をそして私はURL EN /製品を入手または it/prodotti
問題は、私はフォームの投稿をしたいとき、私はどのURLが返されるのかを制御することはできません。
<form asp-action="products" method="post">
こののみ
は私のルートの最初の値を返します。質問はです。私がUrl.RouteUrlリンクを使っているようなフォームを送信すると、ルートをどのように制御できますか?
私もない作品これが、これを試してみました:
[Route("it/prodotti")]
[Route("en/products")]
public ViewResutl products() {
...
return View(new viewmodel...);
}