小数的默认格式

时间:2018-12-06 16:24:47

标签: c# asp.net-mvc asp.net-core

我们系统中的大多数值都存储为小数-99%的时间使用整数,但是有时数字可能输入到小数点后2位。

因此,除非所有数字都显示为小数,否则所有数字都必须显示为整数,在这种情况下,根据数字,该数字应显示为1或2个小数位。

很明显,这可以通过使用

来实现

[DisplayFormat(DataFormatString = "{0:#,0.##}", ApplyFormatInEditMode = true)]

在每个字段上添加.ToString("#,0.##"),但这非常耗时,尤其是在较大的类上,更不用说使代码难以阅读了。

由于这适用于所有小数-似乎只需覆盖默认格式并在整个系统范围内应用都容易得多。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以定义一个默认的显示模板,该模板将在您使用.DisplayFor(...)时拾取。对于decimal属性,您需要创建以下文件:Views/Shared/DisplayTemplates/decimal.cshtml

该文件需要包含一个模型定义,就像常规视图一样,然后包含您需要呈现的任何内容:

@model decimal

@{
    <span>@Model.ToString("#,0.##")</span>
}

.EditorFor(...)Views/Shared/EditorTemplates/decimal.cshtml相同。