我实现了一个支持5种不同语言的ASP.NET Web应用程序。
Web应用程序有5个.resx文件,其中包含以其支持的语言显示网站所需的资源。要以用户选择的语言显示站点,我一直在InitializeCulture页面事件中设置Thread.CurrentThread.CurrentUICulture和Thread.CurrentThread.CurrentUICulture。
有些网页的内容包含UpdatePanel。
从我记忆中(从3年前我研究全球化的时候开始),为了改变文化,你必须进行整页更新。
所以这就是问题所在:
用户打开一个标签,开始处理一个包含内容的UpdatePanel的页面。
然后用户打开另一个选项卡并选择一种新语言。
用户返回到原始选项卡并导致回发到服务器...此时页面永远不会将控制权返回给用户。
如何解决这个问题?
谢谢,
-Frinny
答案 0 :(得分:0)
为了解决这个问题,我最终将用户的文化设置存储到每个页面的HiddenField中(确实在MasterPage中这样做了)。这样我就可以在Page InitializeCulture事件中访问用户的原始文化/语言设置。用户必须单击URL上的Enter键或退出页面才能使用在其他选项卡中选择的“默认”语言/文化。