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

MudDatePicker下拉框显示月份编号而非月份名称问题

Blazor WASM中MudDatePicker区域文化不生效的解决办法

问题核心

你遇到的MudDatePicker显示M12(而非挪威博克马尔语的月份名称),本质是Blazor WASM默认不会自动加载所有区域文化资源,即便直接指定CultureInfo,对应的本地化资源也未被包含到项目中,导致区域设置不生效。

解决步骤

1. 配置项目加载区域文化资源

在项目的.csproj文件中添加以下配置,确保包含目标区域文化的资源:

<PropertyGroup>
  <!-- 加载所有全球化数据,若需缩小体积可替换为指定语言 -->
  <BlazorWebAssemblyLoadAllGlobalizationData>true</BlazorWebAssemblyLoadAllGlobalizationData>
</PropertyGroup>

<ItemGroup>
  <!-- 按需添加需要的区域文化代码 -->
  <SatelliteResourceLanguages Include="nb-NO;zh-Hans" />
</ItemGroup>

如果只想加载特定语言,可关闭BlazorWebAssemblyLoadAllGlobalizationData,仅保留SatelliteResourceLanguages指定的语言。

2. 修正区域文化代码格式

挪威博克马尔语的正确文化代码是nb-NO,而非你代码中的no-Nb,修正后的MudDatePicker代码:

<MudDatePicker Label="Startdato" Culture="@CultureInfo.GetCultureInfo("zh-Hans")" @bind-Date="@StartDate" />
<MudDatePicker Label="Sluttdato" ShowWeekNumbers="true" Culture="@CultureInfo.GetCultureInfo("nb-NO")" @bind-Date="@EndDate" />

3. 全局设置默认区域文化(可选)

如果希望整个应用默认使用挪威博克马尔语,可在Program.cs中配置:

builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");

var targetCulture = new CultureInfo("nb-NO");
CultureInfo.DefaultThreadCurrentCulture = targetCulture;
CultureInfo.DefaultThreadCurrentUICulture = targetCulture;

配置后无需在每个MudDatePicker上单独指定Culture属性。

4. 验证效果

重新构建并运行项目,检查月份是否正确显示为挪威语(十二月应为Desember)或中文(十二月应为12月)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:25:56