【发布时间】:2015-03-13 12:51:45
【问题描述】:
我有一个 ASP.NET MVC 应用程序。此应用程序允许用户设置文化以查看应用程序的内容。为此,用户访问~/user/language。他们选择语言并单击“保存”按钮。在我的控制器中,我有以下内容:
CultureInfo ci = new CultureInfo(model.Culture);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
return View(model);
当视图重新加载时,字符串已经按照我的预期进行了翻译。但是,如果我访问应用程序中的另一个页面,则字符串不会像我预期的那样被翻译。这就像文化信息没有被保留或线程被杀死。
我做错了什么?
【问题讨论】:
-
您正在设置当前线程。当一个新请求进来时,它被分配一个新线程。最好的办法是将用户选择的文化保存到一个 cookie 中,并为进入控制器的每个请求设置它。
标签: asp.net-mvc localization globalization