4
A
答えて
1
あなたはこのような何かを行うことができます:
@Html.RouteLink("Switch Language", "Default", new {
controller = ViewContext.RouteData.Values["controller"],
action = ViewContext.RouteData.Values["action"],
id = ViewContext.RouteData.Values["id"],
language = "fr"
})
これはおそらく、このかかわらを処理するための拡張メソッドを作るために意味をなさないと思います。
2
ほとんどの場合、リンクレンダリングビューのViewModelまたはViewDataの一部として{language}
値を挿入することをお勧めします。あなたがこれを達成できる方法はいくつかあります。コントローラのOnActionExecuted()
メソッドのオーバーロードなど)。このアプローチをとるなら、私はすべてのコントローラを単一のベースコントローラから継承させることを提案します。あなたのビューで
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.Controller.ViewData["Language"] = GetUserLanguage();
base.OnActionExecuted(filterContext);
}
そして:
@Url.Action("Index", "Home", new { language = ViewData["Language"] })
また、あなたは自動的にこの値を追加し、ロジックとUrl.Action()
とHtml.ActionLink()
メソッドをオーバーロード考えるかもしれません。
関連する問題
- 1. ASP.NET MVCルーティングは、私は次のルート持っているルート
- 2. バックボーンルータは、私は、次のルータを持っているルート
- 3. ASP.NET MVCルーティング - 私は現在、次のルートを持っているURL
- 4. 私はルートに次の行を持っているRailsの
- 5. は、私は、次のURL構造を持っているのindex.php
- 6. 私は、次のURLを持っているJSON
- 7. BACKBONE.JS:私は私のアプリ<code>Router.js</code>にURLルートを持っているURLルート
- 8. URLは、私は私のURLを持っているPHP
- 9. ルビー - 私はこのルートを持っている私は、テンプレート
- 10. htaccessファイルは、私は次のコードを持っている新しいURL
- 11. 書き換えURL、私は、次のURLの持っているキーワード
- 12. 名「URLは、」私はasp.netページで、次のコード行持ってasp.net
- 13. は、私はそのようなルートを持っているプロセッサ
- 14. レールは、私は2つのルートを持っている特定のルート
- 15. 私は次の式を持っているテキストフィールドを持っている
- 16. RoRのNoルートは、私は私のルートでこのコードを持って
- 17. は、私は、次のエンティティを持っているDBUnitのはCollectionTable
- 18. 私は次のコード持っている元画像のURL Magentoの(1.6.1.0)
- 19. 私は、次のPHPコードを持っている私のデータベース
- 20. 角度2コンポーネントは、私はときに私のルータのルートは、私は次の画面を取得するには、次のコンポーネントを、持っている
- 21. は、私は次のXMLの例を持っているJavaの
- 22. 私は、次のSQLを持ってLINQ
- 23. htaccessファイルは、私がURLを持っているURL
- 24. へのアクセスオブジェクトはのは、私は次のコードを持っているとしましょうTkinterのルート
- 25. は、私は次のXML文書を持っているのXPath
- 26. は、私は次のコードを持っているエンティティの作成
- 27. は、私は次のコードを持っているのPython
- 28. は、私は次のコードを持っているjQueryのコールバック
- 29. は、私はアンドロイドで次のデータベースを持っているAndroidの
- 30. は、私は次のタイプを持っているのF#