0

ASP.NETMVC4アプリケーションがあります。DIとWebActivatorにninjectを使用して、環境をセットアップします。

Startメソッド内で、System.Globalization.CultureInfo.CurrentCultureは、宣言されたロケールである「es-DO」としてweb.configから正しく読み取ります。

 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メソッドは、Culture情報に依存して、対応する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 に答える