Melhor lugar para definir o CurrentCulture para aplicativos da Web ASP.NET MVC multilíngues
Para um aplicativo Web multilíngue do ASP.NET MVC 3, estou determinando oThread.CurrentThread.CurrentCulture
eThread.CurrentThread.CurrentUICulture
na fábrica do controlador da seguinte maneira:
public class MyControllerFactory : DefaultControllerFactory {
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType) {
//Get the {language} parameter in the RouteData
string UILanguage;
if (requestContext.RouteData.Values["language"] == null)
UILanguage = "tr";
else
UILanguage = requestContext.RouteData.Values["language"].ToString();
//Get the culture info of the language code
CultureInfo culture = CultureInfo.CreateSpecificCulture(UILanguage);
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
return base.GetControllerInstance(requestContext, controllerType);
}
}
O código acima tem quase um ano! Então, abro para sugestões.
E eu registro isso no arquivo Global.asax como:
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
Isso está funcionando bem, mas não tenho certeza se é a melhor prática e o melhor lugar para realizar esse tipo de açã
Eu não peguei o papel principal deControllerFactory
e não consigo compará-lo comActionFilterAttribute
.
O que você acha do melhor lugar para realizar esse tipo de ação?