Изменение языка / культуры в веб-приложении ASP.NET с поддержкой Ajax

Я реализовал веб-приложение ASP.NET, которое поддерживает 5 разных языков.

В веб-приложении есть 5 файлов .resx, которые содержат ресурсы, необходимые для отображения веб-сайта на поддерживаемых им языках. Чтобы отобразить сайт на языке, выбранном пользователем, я установил Thread.CurrentThread.CurrentUICulture и Thread.CurrentThread.CurrentUICulture в событии страницы InitializeCulture.

На некоторых страницах есть UpdatePanels, обернутые вокруг содержимого.

Насколько я помню (3 года назад, когда я исследовал глобализацию), чтобы изменить культуру, вам нужно выполнить полное обновление страницы.

Итак, вот проблема:

Пользователь открывает вкладку и начинает работать на некоторой странице, содержимое которой окружено UpdatePanel.

Затем пользователь открывает другую вкладку и выбирает новый язык.

Пользователь возвращается на исходную вкладку и вызывает обратную передачу на сервер ... на этом этапе страница никогда не возвращает управление пользователю.

Как мне обойти эту проблему?

Спасибо,

-Фринни


person Frinavale    schedule 04.02.2010    source источник


Ответы (1)


Чтобы обойти эту проблему, я сохранил культурные настройки пользователя в HiddenField для каждой страницы (на самом деле сделал это в MasterPage). Таким образом, я могу получить доступ к исходным настройкам культуры / языка пользователя в событии Page InitializeCulture. Пользователь должен будет щелкнуть ввод URL-адреса или выйти со страницы, чтобы использовать язык / культуру «по умолчанию», выбранные на другой вкладке.

person Frinavale    schedule 31.05.2010