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

ASP.NET MVC Core:如何将模型外数值渲染为货币类型(不使用ToString("C"))

嘿,我刚好知道怎么解决这个问题!不用手动调用.ToString("C")的话,咱们可以利用ASP.NET MVC的内置渲染机制来处理,有两种实用的方法:

方法1:用内置的"Currency"显示模板

ASP.NET MVC自带了预定义的显示模板,其中"Currency"模板会自动根据当前区域设置把decimal值渲染成货币格式,直接用@Html.DisplayFor指定模板名称就行:

@{ 
    var vals = Model.CreateValues(); 
}
@for (var i = 0; i < vals.Count ; i++) {
    Year @i: @Html.DisplayFor(_ => vals[i], "Currency")
}

这样渲染出来的结果会自动适配当前文化(比如英文环境显示$,中文环境显示¥),完全不用自己写格式化字符串。

方法2:匿名类型+数据注解(支持自定义格式)

如果需要更灵活的格式控制(比如指定小数位数、调整符号显示),可以把值包装进带格式化规则的匿名类型,让渲染引擎自动应用规则:

@{ 
    var vals = Model.CreateValues(); 
}
@for (var i = 0; i < vals.Count ; i++) {
    var currencyItem = new { Amount = vals[i] };
    Year @i: @Html.DisplayFor(m => currencyItem.Amount, "{0:C2}")
    // 要是想保留1位小数,就改成"{0:C1}",按需调整就行
}

这种方式本质上是让DisplayFor帮你处理格式化逻辑,同样不需要手动调用.ToString("C")。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:26:47