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

时间:2011-02-08 17:11:01

标签: c# asp.net-mvc-2

在较旧的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!

1 个答案:

答案 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;
}