我应该在哪里设置语言(CurrentThread.CurrentCulture)?

sl3*_*dg3 5 c# asp.net-mvc-2

在较旧的asp.net中 - 我们过去常常在Application_BeginRequest- Handler(Global.asax)中设置语言的项目,如下所示:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cookie.Lang)
Run Code Online (Sandbox Code Playgroud)

现在我转而使用MVC 2并决定将语言保留为URL中的修复路径.URL如下所示:{lang}/{controller}/{action}

我应该如何以及在何处从URL中读取语言并设置CurrentCulture?如何最好地完成MVC - 方式?

任何tipps的Thx!

Luk*_*tný 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;
}
Run Code Online (Sandbox Code Playgroud)