You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor中使用RegionInfo时属性均为ISO代码的原因排查

Blazor中RegionInfo只返回ISO代码的问题解决

当你在Blazor里用RegionInfo获取国家名称却只得到ISO代码,核心原因是Blazor WebAssembly项目默认只带了最基础的全球化资源,没有加载对应地区的本地化数据,导致RegionInfo没法解析出完整名称。

具体解决步骤:

  1. 安装必需的NuGet包
    确保你的项目引用了System.Globalization.Extensions,这个包是全球化功能的核心依赖,没有它RegionInfo的很多属性没法正常工作。

  2. 配置项目的全球化支持
    在项目的Program.cs里添加本地化配置,指定你需要支持的地区:

    builder.Services.AddLocalization();
    
    var supportedCultures = new[] { "en-US", "de-DE" }; // 按需添加需要的地区代码
    builder.Services.Configure<RequestLocalizationOptions>(options =>
    {
        options.DefaultRequestCulture = new RequestCulture("en-US");
        options.SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToList();
        options.SupportedUICultures = supportedCultures.Select(c => new CultureInfo(c)).ToList();
    });
    
  3. 确保加载全球化数据
    打开项目的.csproj文件,添加以下配置,让Blazor WASM加载所需的地区数据:

    <PropertyGroup>
      <!-- 加载所有全球化数据,适合测试或小项目 -->
      <BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
      <!-- 如果想缩小包体积,可指定具体支持的地区 -->
      <!-- <SupportedCultures>de,en</SupportedCultures> -->
    </PropertyGroup>
    

做完这些配置后,重新运行项目,你的代码:

// User.Country = "DE"
RegionInfo region = new RegionInfo(User.Country);
_country = region.EnglishName;

就能正常返回"Germany"这类国家名称,而不是ISO代码了。

内容的提问来源于stack exchange,提问作者Avalari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:02:44