私はen-US、pt-BR、es-ESのローカリゼーションをサポートするWebアプリケーション(ASP.NET MVC 3)を持っています。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");
}
}
私はActionLinkので、私は言語/ ESはスペイン語に変更してインデックスページにリダイレクトするために呼び出す、EN-USの文化でアプリを起動します。しかし、うまくいきません。インデックスページはまだ英語です...
スレッドIDは、メソッドLanguagesController.ESとHomeController.Indexでは異なります。
どのようにASP.NET MVCアプリケーションでローカリゼーションを管理する最良の方法はありますか?
ここでは正しい方向に向かうかもしれない記事です。 http://blog.stevelydford.com/2011/01/asp-net-mvc-3-internationalization/ –
各リクエストは別のスレッドで処理されます。 –