Asp.net mvc 如何将CultureInfo传递给partialView以进行ajax调用?
我有一个查看页面和一个局部视图。对于调用页面时的默认请求,在viewPage的基类中设置CultureInfo。我创建了这个自定义基类,它根据cookie初始化区域性,并执行其他一些操作。视图页面上有一个搜索按钮,它使用Ajax调用(jquery Ajax调用)更新页面上的部分视图。此部分视图更新调用有单独的操作,它返回部分视图。问题是局部视图没有任何基类,当资源显示在局部视图上时,它们显示为默认区域性,而不是当前区域性。当从jQueryAjax调用调用部分视图时,设置cultureInfo的最佳方法是什么Asp.net mvc 如何将CultureInfo传递给partialView以进行ajax调用?,asp.net-mvc,Asp.net Mvc,我有一个查看页面和一个局部视图。对于调用页面时的默认请求,在viewPage的基类中设置CultureInfo。我创建了这个自定义基类,它根据cookie初始化区域性,并执行其他一些操作。视图页面上有一个搜索按钮,它使用Ajax调用(jquery Ajax调用)更新页面上的部分视图。此部分视图更新调用有单独的操作,它返回部分视图。问题是局部视图没有任何基类,当资源显示在局部视图上时,它们显示为默认区域性,而不是当前区域性。当从jQueryAjax调用调用部分视图时,设置cultureInfo的最
我将此mvc应用程序作为更大的现有应用程序的一部分(区域),因此我无法触摸session_start。您可以使用
字符串
数组将区域性信息作为模型发送到局部视图
我想您已经处理了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" })
我不知道为什么你需要传递文化,你不能直接从你的PartialView中使用helper方法获得它吗
@YourApp.CultureHelper.GetCurrentCulture()
这只是打电话
public static string GetCurrentCulture()
{
return Thread.CurrentThread.CurrentCulture.Name;
}
如果您正在从事国际化和ASP.NET MVC方面的工作,我强烈建议您阅读以下两篇优秀的文章:
写得很好,并解释了关于国际化需要知道的一切。您是否应该在应用程序的
会话\u Start
中正确设置CultureInfo
?为什么要在整个应用程序中处理它?