ASP.NET中如何让小数显示逗号分隔符?无web.config解决方案
在ASP.NET中无web.config时实现小数逗号分隔显示
可以通过自定义区域性配置或显示模板的方式实现,不需要依赖web.config,以下是具体方案:
方案一:全局自定义区域性(推荐)
如果要全局统一设置小数显示格式,可在项目启动时自定义区域性规则:
ASP.NET Core 项目(Program.cs)
var builder = WebApplication.CreateBuilder(args); // 创建自定义区域性,替换小数分隔符为逗号 var customCulture = new CultureInfo("en-US") { NumberFormat = new NumberFormatInfo { NumberDecimalSeparator = ",", CurrencyDecimalSeparator = "," // 如果涉及货币显示也同步修改 } }; // 设置线程默认区域性 CultureInfo.DefaultThreadCurrentCulture = customCulture; CultureInfo.DefaultThreadCurrentUICulture = customCulture; // 注册控制器和视图服务 builder.Services.AddControllersWithViews(); var app = builder.Build(); // 中间件配置(省略默认代码) app.Run();
ASP.NET MVC 项目(Global.asax.cs)
protected void Application_Start() { var customCulture = new CultureInfo("en-US") { NumberFormat = new NumberFormatInfo { NumberDecimalSeparator = ",", CurrencyDecimalSeparator = "," } }; CultureInfo.DefaultThreadCurrentCulture = customCulture; CultureInfo.DefaultThreadCurrentUICulture = customCulture; // 其他初始化代码(如路由注册等) }
配置完成后,所有decimal类型字段会自动以逗号作为小数分隔符显示,无需修改模型代码。
方案二:自定义显示模板(局部字段生效)
如果仅需特定字段应用该格式,可创建自定义显示模板:
- 在项目
Views/Shared目录下新建DisplayTemplates文件夹,创建DecimalComma.cshtml文件:
@model decimal? @if (Model.HasValue) { @Model.Value.ToString("N2", new CultureInfo("") { NumberFormat = { NumberDecimalSeparator = "," } }) } else { @Html.DisplayTextFor(model => model) }
- 在模型字段上添加
UIHint属性指定模板:
[DisplayName("Cost")] [UIHint("DecimalComma")] public decimal Value { get; set; }
两种方案都能实现将20.85显示为20,85的效果,可根据需求选择。
内容的提问来源于stack exchange,提问作者user22233071
相关产品推荐
相关产品推荐

