C# 小数的默认格式
我们系统中的大多数值存储为小数-99%的时间使用整数,但偶尔数字可能输入到小数点后2位 因此,要求所有数字都显示为整数,除非存在小数点,在这种情况下,小数点显示为1或2位,具体取决于数字 显然,这可以通过使用C# 小数的默认格式,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我们系统中的大多数值存储为小数-99%的时间使用整数,但偶尔数字可能输入到小数点后2位 因此,要求所有数字都显示为整数,除非存在小数点,在这种情况下,小数点显示为1或2位,具体取决于数字 显然,这可以通过使用 [DisplayFormat(DataFormatString=“{0:#,0.##}”,ApplyFormatInEditMode=true)] 在每个字段上添加.ToString(“#,0.###”),但这样做非常耗时,尤其是在较大的类上,更不用说让代码很难阅读了 由于这适用于所有的小
[DisplayFormat(DataFormatString=“{0:#,0.##}”,ApplyFormatInEditMode=true)]
在每个字段上添加.ToString(“#,0.###”)
,但这样做非常耗时,尤其是在较大的类上,更不用说让代码很难阅读了
由于这适用于所有的小数-似乎只需覆盖默认格式并在系统范围内应用此格式就更容易了
有没有办法做到这一点?您可以定义一个默认的显示模板,每当您使用
.DisplayFor(…)
时,该模板将被选中。对于decimal
属性,需要创建以下文件:Views/Shared/DisplayTemplates/decimal.cshtml
文件需要包含模型定义,就像常规视图一样,然后包含渲染它所需的任何内容:
@model decimal
@{
<span>@Model.ToString("#,0.##")</span>
}
@model decimal
@{
@Model.ToString(“#,0.##”)
}
这同样适用于.EditorFor(…)
和视图/Shared/EditorTemplates/decimal.cshtml