Asp.net mvc 从web.config获取声明的区域性时出错

Asp.net mvc 从web.config获取声明的区域性时出错,asp.net-mvc,localization,Asp.net Mvc,Localization,我有一个ASP.NET MVC4应用程序。我使用ninject for DI和WebActivator来设置环境 在Start方法中,System.Globalization.CultureInfo.CurrentCulture从web.config中正确读取为“es DO”,这是声明的区域设置: public static void Start() { DynamicModuleUtility.RegisterModule(typeof(OnePerRequestH

我有一个ASP.NET MVC4应用程序。我使用ninject for DI和WebActivator来设置环境

在Start方法中,System.Globalization.CultureInfo.CurrentCulture从web.config中正确读取为“es DO”,这是声明的区域设置:

 public static void Start() 
    {
        DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
        DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
        Bootstrapper.Initialize(CreateKernel);

    }
在PostStart方法中,我设置路由和缩小捆绑包,将区域设置更改为“en-US”。我假设这是默认的语言环境

 public static void PostStart()
    {
        ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;

        RouteConfig.RegisterRoutes();
        GlobalFilterConfig.RegisterFilters();
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        AuthConfig.RegisterAuth();
    }
有人知道为什么会这样吗?BundleConfig.RegisterBundles方法依赖于区域性信息来加载相应的javascript文件

我们这样修复它:

//Hack to set the culture again to the one defined on the web.config
        var config = WebConfigurationManager.OpenWebConfiguration("/");
        var section = (GlobalizationSection)config.GetSection("system.web/globalization");
        if(section != null)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo(section.Culture);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(section.UICulture);
        }       

你能显示你的web.config文件吗,特别是全球化元素?看起来不错。WebActivator可能有问题吗?