我的应用程序的每个用户都会选择他们的国家/地区,然后将其存储在 cookie 中并存储以供以后请求。一切正常,但我需要在会话开始时设置文化。我目前正在尝试将 web.config 中的区域性设置为 en-GB,然后使用 Global.asax 将会话的区域性覆盖为 en-US。代码如下
protected void Session_Start(object sender, EventArgs e)
{
if (Globals.CountryID == 8)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
}
}
在以下代码中,countryID 为 8,区域性设置为 en-US。但是,当我导航到设置了 ToString("C") 的页面时,它仍然以 GBP 显示,并且区域性仍然是 en-GB。
有什么建议么?
您假设为页面请求提供服务的线程与在代码中启动会话的线程是同一线程 - 不能保证这一点。
您可能想保存文化Session
变量并使用覆盖InitializeCulture在您的页面中,如下所述:如何:设置 ASP.NET 网页全球化的文化和 UI 文化.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)