0
我想更改我的網站中的語言。我以爲我可以使用Handler來做到這一點,所以下降將爲http://domain.com/Handler.ashx?language=en-US,f.i.更改ASHX處理程序上的Thread.CurrentThread.CurrentCulture
所以,它調用處理器,具有此代碼:
string selectedLanguage = context.Request.QueryString["language"];
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
context.Response.Redirect(context.Request.UrlReferrer.AbsoluteUri.ToString());
但是,當它回到過去,Thread.CurrentThread.CurrentCulture設置爲PT-BR,這是初始值。
我的問題是:處理程序上的線程與加載內容的aspx頁面不同?你有什麼建議作爲解決方法?
謝謝
謝謝。它按我想要的那樣工作。 只是出於好奇:你會在這種情況下推薦什麼? ty再 – 2009-08-20 17:57:48
那麼,本地化和文化信息應該是你試圖在會話級別處理的東西。使用此處理程序方法可解決通過此處理程序運行的所有請求的問題,但這會給您的代碼帶來不必要的緊張和困惑。通過實現一些非常簡單的服務器控件或類似於放置在頁面(或主頁面)上的OnInit將線程文化設置爲會話中存儲的某個值,並且當用戶從下拉列表中選擇一個項目時更改該值,你已經解決了整個會話的問題。 我可能不明白... – LorenVS 2009-08-20 18:00:58
好的。此解決方案有效。但每次我點擊一個鏈接,它只是'重新啓動'的文化,我想這是出於同樣的原因,你在原始答案上說。我要參加會議級別的嘗試。 – 2009-08-20 18:46:54