加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET:以编程方式更改网站的文化

发布时间:2020-12-16 03:44:25 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试以编程方式设置我的网站文化,因此当用户单击按钮时,他们可以将页面上的文本从英语更改为西班牙语.这是我的代码: protected void btnChangeLanguage(object sender,EventArgs e){ Thread.CurrentThread.CurrentCulture = new CultureInfo("es"); T
我正在尝试以编程方式设置我的网站文化,因此当用户单击按钮时,他们可以将页面上的文本从英语更改为西班牙语.这是我的代码:

protected void btnChangeLanguage(object sender,EventArgs e)
{
    Thread.CurrentThread.CurrentCulture = new CultureInfo("es");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("es);
}

<asp:Label ID="lblDisplay" runat="server" meta:ResourceKey="lblDisplay" />

<asp:Button ID="btnChangeLanguage" runat="server" Text="Change Language"
        OnClick="btnChangeLanguage_Click" />

我有一个Default.aspx.resx文件,其键/值为:lblDisplay.text / English
和一个键/值为Default.aspx.es.resx的文件:lblDisplay.text / Espanol

我无法将我的Label文本从“英语”更改为“西班牙语”.有谁看到我做错了什么?

解决方法

ASP.Net线程用于一个请求的生命周期,而不是用户的整个会话.更糟糕的是,有时框架会回收相同的线程来处理额外的请求,而不是将其返回到池中并获得一个新的请求(这不是一个大问题,因为下一个请求将再次初始化文化,但仍然).

相反,您需要覆盖页面的InitializeCulture()方法.有关详细信息,请参阅此链接:
http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读