我在控制器中有一个操作方法,而在不同的语言中有两个视图。在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参数上做一个手表 –