2017-05-10 8 views
4

ルート付き多言語ウェブアプリをやりたいと思います。.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...); 
} 

答えて

0

すばらしいニュース、最後に私は答えを見つけました。

@using (Html.BeginRouteForm("routenamehere")) 
    { 
    <form> 
    ... 
    ... 
    </form> 
    } 
0

その表面変化よりもずっと深いです。ダミアンBOD、

  1. https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/
  2. https://github.com/damienbod/AspNet5Localization/tree/master/src/AspNetCoreLocalization

ソースとトピックに関する彼の書き込みアップによってトピックへの参照を見つけました。

この説明では、彼が示したwebapiに関連付けられたActionFilterが含まれています。私はあなたのための出発点だと思う。

関連する問題