Asp.net mvc 如何将CultureInfo传递给partialView以进行ajax调用?

Asp.net mvc 如何将CultureInfo传递给partialView以进行ajax调用?,asp.net-mvc,Asp.net Mvc,我有一个查看页面和一个局部视图。对于调用页面时的默认请求,在viewPage的基类中设置CultureInfo。我创建了这个自定义基类,它根据cookie初始化区域性,并执行其他一些操作。视图页面上有一个搜索按钮,它使用Ajax调用(jquery Ajax调用)更新页面上的部分视图。此部分视图更新调用有单独的操作,它返回部分视图。问题是局部视图没有任何基类,当资源显示在局部视图上时,它们显示为默认区域性,而不是当前区域性。当从jQueryAjax调用调用部分视图时,设置cultureInfo的最

我有一个查看页面和一个局部视图。对于调用页面时的默认请求,在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
?为什么要在整个应用程序中处理它?