在支持Ajax的ASP.NET Web应用程序中更改语言/文化

时间:2010-02-04 21:08:25

标签: asp.net ajax globalization

我实现了一个支持5种不同语言的ASP.NET Web应用程序。

Web应用程序有5个.resx文件,其中包含以其支持的语言显示网站所需的资源。要以用户选择的语言显示站点,我一直在InitializeCulture页面事件中设置Thread.CurrentThread.CurrentUICulture和Thread.CurrentThread.CurrentUICulture。

有些网页的内容包含UpdatePanel。

从我记忆中(从3年前我研究全球化的时候开始),为了改变文化,你必须进行整页更新。

所以这就是问题所在:

用户打开一个标签,开始处理一个包含内容的UpdatePanel的页面。

然后用户打开另一个选项卡并选择一种新语言。

用户返回到原始选项卡并导致回发到服务器...此时页面永远不会将控制权返回给用户。

如何解决这个问题?

谢谢,

-Frinny

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我最终将用户的文化设置存储到每个页面的HiddenField中(确实在MasterPage中这样做了)。这样我就可以在Page InitializeCulture事件中访问用户的原始文化/语言设置。用户必须单击URL上的Enter键或退出页面才能使用在其他选项卡中选择的“默认”语言/文化。