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
相关产品推荐
相关产品推荐

