2016-09-12 8 views
1

シナリオ
DNS名は、次のようにローカライズされています。 すべてのこれらのエントリは、同じWebサイトを指している:MVC - ローカライズされたURL /ルート

  • www.mavoiture.com(FR)
  • www.mycar.com(JA)
  • www.meinauto.com(デ)

URLに言語コードを使用したくないです!

- www.mavoiture.com/maison/enregistrer(FR)
- www.mycar.com/house/register(EN)
- www.meinauto.com/Haus/registrieren(デ)

各言語のアクションメソッドのルート属性を登録できます。

これは、最初の外観で動作します。 しかし、私はローカライズされたURLを持っているルーティングは(もハイパーリンク)に翻訳カスタマイズする方法

URL.Action("MyAction","Controller") 

または

@Html.ActionLink(...) 

または

@Html.RenderAction 

を使用している場合、これは、動作しません。現在の言語ですか?言語はDNS名によって決まります。

答えて

0

@Html.RouteLink(...)を使用します。これにより、リンクを生成する際にルートを指定することができます。

それでは、すべてのルートを登録します。

@Html.RouteLink("Link to Register", "FR-Route", 
       new { controller = "House", action = "Register" }) 

リンクは、「メゾン/ enregistrer」かもしれない「FR-ルート」テンプレートに変換されます。

Url.Action - RouteUrl(...)を使用できます。

RenderAction - エンドユーザーがRenderActionのURLを見ることはないため、実際には問題ありません。

+1

パーフェクト!.......... – Perro

関連する問題