0

我有一个 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 文件。

4

1 回答 1

0

我们这样修复它:

//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);
        }       
于 2012-09-13T20:29:09.903 回答