使用 mvc6 网格时无法将显示格式设置为小数点后两位

Can't set display format to 2 decimal places when using mvc6 grid

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

我正在使用mvc 6 grid显示数据,我已经尝试了这些解决方案:

[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 中没有这样做的方法吗?

请注意,这不是所建议问题的副本。如果您实际阅读这些问题,您会看到这一点。

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

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

我通过从 here and finding the Formatted method used here

获取格式字符串找到了答案

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

那样显示货币符号

在你的第一行中你错过了 'C' 之后的小数点。应该是 [DisplayFormat(DataFormatString = "{0:C2}")]