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

时间:2018-10-18 11:35:40

标签: c# format asp.net-core-mvc currency mvcgrid

我需要在.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; }

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

enter image description here

我想念什么吗?

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

请注意,这与建议的问题重复。如果您实际阅读这些问题,将会看到该问题。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

我找到了答案,方法是从here获取格式字符串,并找到here使用的Formatted方法

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