看來我的問題根據用戶偏好(.NET 4.0 Web應用程序)更改爲System.Globalization.CultureInfo.CurrentUICulture
值。如何在.NET 4.0 Web應用程序中更改System.Globalization.CultureInfo.CurrentUICulture?
在我的web應用程序中,我有兩個按鈕。一個用於希臘語,一個用於英語。點擊按鈕後,請求會發送到服務器,要求更改用戶首選語言。對於希臘語,我發送「el-GR」和英語,我發送「en-US」。
在服務器端,我使用以下一段代碼來更改當前的CultureInfo
。
Dim languageChosen As String = Me.Context.Request.Params("langId")
' Code for CultureInfo
Dim cultureInfo As System.Globalization.CultureInfo
cultureInfo = New System.Globalization.CultureInfo(languageChosen)
' Code for Setting the CurrentCulture
Thread.CurrentThread.CurrentCulture = cultureInfo
Thread.CurrentThread.CurrentUICulture = cultureInfo
Response.Redirect("Default.aspx", True)
現在,在接下來的請求服務器,我從CultureInfo.CurrentUICulture.TwoLetterISOLanguageName
獲取值檢查當前的文化,而這總是顯示「恩」,就算我的用戶已經拿起「EL-GR」。
問題在哪裏?
我是否必須在請求之間保存用戶首選語言,例如在會話中?然後在每個頁面的開頭將它設置爲System.Thread.CurrentThread.CurrentCulture
?