在较旧的asp.net中 - 我们过去通常在Application_BeginRequest
- Handler(Global.asax)中设置语言,如下所示:
System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cookie.Lang)
现在我转而使用MVC 2并决定将语言保留为URL中的修复路径。网址如下所示:{lang}/{controller}/{action}
我应该如何以及在何处阅读网址中的语言并设置CurrentCulture?如何最好地完成MVC - 方式?
任何tipps的Thx!
答案 0 :(得分:5)
global.asax中的这样的东西应该可以工作
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
MvcHandler handler = Context.Handler as MvcHandler;
if (handler == null)
return;
string lang = handler.RequestContext.RouteData.Values["lang"] as string;
CultureInfo culture = CultureInfo.GetCultureInfo(lang);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
}