ASP MVC 3プロジェクトでは、言語切り替えを有効にする必要があります。ActionLinkを使用したASP MVC 3スイッチング言語
ルーティングは、次のように定義されていますした後(代わりに次のようなURLを取得する
<li>@Html.ActionLink("Spanish", ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "es" })</li>
:(_Layout.cshtmlで)言語を切り替えるしようと
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"DefaultWithLanguage", // Route name
"{language}/{controller}/{id}/{slug}", // URL with parameters
new { language = "en", controller = "Front", action = "Details", id = UrlParameter.Optional, slug = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
このように動作しますスペイン語を選択しました)
私はこれを得ています:
.../ControllerName/ActionName?Length=11
私は(最後のヌルパラメータに注目してください)以下にActionLinkのを設定した場合:
<li>@Html.ActionLink("Spanish", ViewContext.RouteData.Values["action"].ToString(), ViewContext.RouteData.Values["controller"].ToString(), new { language = "es" }, null)</li>
を私はこれを取得:
.../ControllerName/ActionName?language=es
私は何をしないのですか? ありがとうございます!
デフォルトルートのままにしましたか?すべてのルート登録を表示してください。 –
@ダリン(変更された)配合を見てください。 RegisterRoutesにすべてのコードを含めました。 –