我有一个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