更改支持 Ajax 的 ASP.NET Web 应用程序中的语言/文化
我已经实现了一个支持 5 种不同语言的 ASP.NET Web 应用程序。
Web 应用程序有 5 个 .resx 文件,其中包含以其支持的语言显示网站所需的资源。为了以用户选择的语言显示站点,我在 InitializeCulture 页面事件中设置了 Thread.CurrentThread.CurrentUICulture 和 Thread.CurrentThread.CurrentUICulture。
某些页面的内容包含 UpdatePanel。
据我所知(三年前我研究全球化时),为了改变文化,你必须进行整页更新。
所以问题是:
用户打开一个选项卡并开始在内容周围有 UpdatePanel 的某个页面上工作。
然后用户打开另一个选项卡并选择一种新语言。
用户返回到原始选项卡并导致回发到服务器......此时页面永远不会将控制权返回给用户。
我该如何解决这个问题?
谢谢,
-弗林尼
I've implemented an ASP.NET web application that supports 5 different languages.
The web application has 5 .resx files that contain the resources required in order to display the website in the languages it supports. To display the site in the language that the user has selected, I've been setting the Thread.CurrentThread.CurrentUICulture and Thread.CurrentThread.CurrentUICulture in the InitializeCulture page event.
Some of the pages have UpdatePanels wrapped around the content.
From what I remember (from 3 years ago when I was researching globalization), in order to change cultures you have to do a full page update.
So here's the problem:
The user opens a tab and starts working on some page that has an UpdatePanel surrounding the content.
Then the user opens another tab and selects a new language.
The user returns to the original tab and causes a postback to the server...at this point the page never returns control to the user.
How do I get around this problem?
Thanks,
-Frinny
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了解决这个问题,我最终将用户的文化设置存储到每个页面的 HiddenField 中(实际上是在 MasterPage 中这样做的)。这样我就可以在页面 InitializeCulture 事件中访问用户的原始文化/语言设置。用户必须单击 URL 上的输入或退出页面才能使用在其他选项卡中选择的“默认”语言/文化。
To get around this problem I ended up storing the user's cultural settings into a HiddenField for each page (did this in the MasterPage really). This way I can access the user's original culture/language settings in the Page InitializeCulture event. The user would have to click enter on the URL or exit the page to use the "default" language/culture selected in the other tab.