首页 > 解决方案 > 使用 mvc6 网格时无法将显示格式设置为 2 位小数

问题描述

我需要在我的 .net core asp mvc 项目中显示一些货币价值的平均总和。

我正在使用mvc 6 网格来显示数据,并且我尝试了以下解决方案:

[DisplayFormat(DataFormatString = "{0:C}")]
public double? AverageCost { get; set; }

[DisplayFormat(DataFormatString = "{0:#.####}")]
public double? AverageCost { get; set; }

[RegularExpression(@"^\d+\.\d{0,2}$")]
public double? AverageCost { get; set; }

但我的值仍然显示有几个小数位:

在此处输入图像描述

我错过了什么吗?

我知道我可以使用 mvc 6 网格格式化列,但是在 ViewModel 中没有这样做的方法吗?

请注意,这不是建议问题的重复。如果您真正阅读了这些问题,您会看到这一点。

标签: c#formatasp.net-core-mvccurrencymvcgrid

解决方案


我可以通过使用该Formatted方法并在{0:N}视图本身中传递值来做到这一点:

columns.Add(model => model.AverageCost).Titled("AverageCost").Formatted("{0:N}");

我通过从这里获取格式字符串并找到这里Formatted使用的方法找到了答案

{0:C}这对我来说是完美的,因为它将值显示为货币但不显示货币符号


推荐阅读