我有一个Web应用程序(ASP.NET MVC 3),本地化支持en-US,pt-BR,es-ES。为什么RedirectToAction会更改ThreadID?
public class HomeController : Controller
{
public ActionResult Index()
{
int threadId = Thread.CurrentThread.ManagedThreadId;
string threadUICulture = Thread.CurrentThread.CurrentUICulture.ToString();
return View();
}
}
public class LanguageController : Controller
{
public ActionResult EN()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
return RedirectToAction("Index", "Home");
}
public ActionResult ES()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-ES");
Thread.CurrentThread.CurrentCulture = new CultureInfo("es-ES");
int threadId = Thread.CurrentThread.ManagedThreadId;
return RedirectToAction("Index", "Home");
}
public ActionResult PT()
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-BR");
Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR");
return RedirectToAction("Index", "Home");
}
}
我启动应用程序与文化EN-US,与ActionLink的,我所说的语言/ ES更改为西班牙语和重定向到索引页。但不工作,索引页面仍然是英文...
我看到线程Id在方法LanguagesController.ES和HomeController.Index上不同。
如何管理ASP.NET MVC应用本地化的最佳方式是什么?
这里有一篇文章可能会让你朝着正确的方向前进。 http://blog.stevelydford.com/2011/01/asp-net-mvc-3-internationalization/ – 2011-12-28 14:21:22
每个请求都由不同的线程处理。 – 2011-12-28 17:46:34