我有一个viewpage和partview。对于默认请求 - 何时调用页面 - CultureInfo在viewPage的基类中设置。我创建了这个自定义基类,它根据cookie初始化文化,并做一些其他的东西。视图页面上有一个搜索按钮,它使用Ajax调用(jquery Ajax调用)更新页面上的局部视图。此部分视图更新调用有单独的操作,它返回部分视图。问题是局部视图没有任何基类,当资源显示在部分视图上时,它们显示为默认文化,而不是当前文化。从jQuery Ajax调用调用部分视图时,设置cultureInfo的最佳方法是什么?
我有这个mvc应用程序作为更大的现有应用程序的一部分(区域),所以我无法触及session_start。
答案 0 :(得分:2)
我不确定为什么你需要传播文化,你不能使用辅助方法直接从PartialView获取它吗?
@YourApp.CultureHelper.GetCurrentCulture()
只是打电话
public static string GetCurrentCulture()
{
return Thread.CurrentThread.CurrentCulture.Name;
}
如果您正在进行国际化和ASP.NET MVC的任何工作,我强烈建议您阅读这两篇优秀帖子Nadeem Afana
写得非常好,并解释了您需要了解的有关国际化的所有信息。
答案 1 :(得分:1)
您可以将文化信息作为带有string
数组的模型发送到部分视图。
我猜你已经处理了ajax调用,所以我只是告诉你传递值的方法。下面是你的控制器:
public ActionResult Index() {
return PartialViewResult("samplePartial", new string[] { "en" });
}
这是你的部分观点:
@model string[]
@if(Model[0] == "en") {
@:Culture is "en"
} else {
@Culture is different than "en"
}
此外,这也可以在您的视图中呈现,如下所示:
@Html.Partial("samplePartial", new string[] { "en" })