我有一個ASP.NET MVC應用程序。這個應用程序允許用戶設置文化來查看應用程序的內容。爲此,用戶訪問~/user/language
。他們選擇語言並點擊「保存」按鈕。在我的控制器中,我有以下內容:ASP.NET MVC - 設置文化信息
CultureInfo ci = new CultureInfo(model.Culture);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
return View(model);
當視圖重新加載時,字符串已被翻譯成像我所期望的那樣。但是,如果我訪問應用中的另一個頁面,字符串不會像我所期望的那樣翻譯。這就像文化信息沒有被保存下來或線程被殺害。
我在做什麼錯?
您正在設置當前線程。當新的請求進入時,它被分配一個新的線程。最好的辦法是將用戶選擇的文化保存到cookie中,併爲每個進入控制器的請求進行設置。 – heymega 2015-03-13 12:54:37