我在控制器中有一個操作方法,而在不同的語言中有兩個視圖。在asp.net中的控制器中重定向後,查看內容無法正確顯示mvc
public ActionResult Index(Guid id, string languageName)
{
var view = "Welcome_en";
if (languageName == "Spanish")
view = "Welcome_es";
return View(view, model);
}
默認languageName是 「英語」。(在默認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相同。
我不確定它爲什麼顯示英文視圖的內容,我清理了這些cookie,但它是一樣的。另外,我在英文頁面設置了一個斷點,當語言是「西班牙語」時,它不會去那裏。
輸入控制器動作時,languageName的值是多少?在languageName參數上做一個手錶 –