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

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类型字段会自动以逗号作为小数分隔符显示,无需修改模型代码。

方案二:自定义显示模板(局部字段生效)

如果仅需特定字段应用该格式,可创建自定义显示模板:

  1. 在项目Views/Shared目录下新建DisplayTemplates文件夹,创建DecimalComma.cshtml文件:
@model decimal?
@if (Model.HasValue)
{
    @Model.Value.ToString("N2", new CultureInfo("") 
    { 
        NumberFormat = { NumberDecimalSeparator = "," } 
    })
}
else
{
    @Html.DisplayTextFor(model => model)
}
  1. 在模型字段上添加UIHint属性指定模板:
[DisplayName("Cost")]
[UIHint("DecimalComma")]
public decimal Value { get; set; }

两种方案都能实现将20.85显示为20,85的效果,可根据需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:10:18