首页 > 解决方案 > 文化 ID 31770 (0x7C1A) 是中性文化;无法从中创建区域。参数名称:文化

问题描述

我正在使用 .net 框架 2.0。我已将网站从Windows server 2008 R2 Standard移动到Windows server 2019 Standard ,然后在我的函数中抛出以下错误。

在此处输入图像描述

在此处输入图像描述

我的功能代码如下

   protected string GetCultureFlagMapJS()
   {
        Dictionary<string, string> cultureCountryFlagMap = new Dictionary<string, string>();
        List<CountryFlags> flags = Flags();
        List<CultureInfo> codes = Codes();
        foreach (CultureInfo cultInfo in codes)
        {
            RegionInfo regInfo = new RegionInfo(cultInfo.LCID);
            CountryFlags flagMatch = flags.FirstOrDefault(f => f.Text == regInfo.EnglishName);
            if (flagMatch != null)
            {
                cultureCountryFlagMap.Add(cultInfo.Name, flagMatch.Value);
            }
        }
        var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        string jsCultureCountryFlagMap = serializer.Serialize(cultureCountryFlagMap);
        return "var jsCultureCountryFlagMap = " + jsCultureCountryFlagMap + ";";
    }

标签: c#webforms

解决方案


我得到了解决方案,当我更改自己的方法代码并且它工作正常时。

我在这里更改了方法代码:

protected string GetCultureFlagMapJS()
{
    Dictionary<string, string> cultureCountryFlagMap = new Dictionary<string, string>();
    List<CountryFlags> flags = Flags();
    List<CultureInfo> codes = Codes();
    foreach (CultureInfo cultInfo in codes)
    {
        var ci = cultInfo;  // local copy, use ci from now on
        if (!ci.IsNeutralCulture)
        {                
            RegionInfo regInfo = new RegionInfo(ci.LCID);
            CountryFlags flagMatch = flags.FirstOrDefault(f => f.Text == regInfo.EnglishName);
            if (flagMatch != null)
            {
                cultureCountryFlagMap.Add(cultInfo.Name, flagMatch.Value);
            }
        }
    }
}

推荐阅读