コントローラにアクションメソッドがあり、言語が異なる2つのビューがあります。コントローラでリダイレクトされた後、表示内容が正しく表示されないmvc
public ActionResult Index(Guid id, string languageName)
{
var view = "Welcome_en";
if (languageName == "Spanish")
view = "Welcome_es";
return View(view, model);
}
デフォルトの言語名は "英語"です(RouteConfig.cs
のデフォルト部分)。したがって、最初はページはhttp://localhost:12091/Some/sssf6bda-9r5e-64d7-9bd2-63c2te616adb
に読み込まれます。
そして私はこのビューがWelcome_en.cshtmlであることを見ました。そのビューでは、アクティブな言語を切り替えるための言語のドロップダウンメニューがあります。私はスペイン語を選択し、次にajax呼び出しを行います。
$("#Languages").change(function() {
var activeLanguage= $(this).find('option:selected').val();
$.ajax({
url: "/Some/Index",
datatype: "text",
data: { id: '@Model.Guid', languageName: activeLanguage },
type: "POST",
success: function() {
console.log('Success')
}
})
次に、コードが再びコントローラに入力されたことがわかりました。表示されるビューはWelcome_es.cshtmlである必要があります。
図Welcome_es.cshtmlは基本的Welcome_en.cshtmlと同じです。違いは、異なる言語のコンテンツです。そして私はWelcome_es.cshtmlにブレークポイントを設定しました。しかし、最終的に表示される結果はWelcome_en.cshtmlと同じです。
なぜ私は英語のコンテンツを表示するのかわかりませんが、私はクッキーをきれいにしましたが、それは同じです。また、英語のページにブレークポイントを設定しましたが、言語が「スペイン語」のときはそこには行きませんでした。
コントローラアクションに入るときのlanguageNameの値は何ですか? languageNameパラメータのウォッチを行う –