如何在我的视图中将AmountFc
媒体资源格式化为#,##0.00
。
模型中的属性是可以为空的decimal
public decimal? AmountFc { get; set; }
在视图中我使用
<td height="15" style="text-align:center">@Model.Transcation.AmountFc</td >
使用@Model.Transcation.AmountFc.ToString("#,##0.00")
会出现以下错误。
方法“ToString”没有重载需要1个参数
答案 0 :(得分:1)
使用.ToString("#,##0.###")
时出现的错误是因为该属性是可以为空的值类型。您需要将值转换为十进制,例如使用
@Model.Transcation.AmountFc.GetValueOrDefault().ToString("#,##0.00")
但是,这意味着如果值为null
,则会显示0.00
,这会产生误导。您可以有条件地检查null
,例如
@if(Model.Transcation.AmountFc.HasValue)
{
<td>@Model.Transcation.AmountFc.Value.ToString("#,##0.00")</td>
}
else
{
<td></td>
}
然而,更好的解决方案是将DisplayFormatAttribute应用于您的财产
[DisplayFormat(DataFormatString = "{0:#,##0.00}")]
public decimal? AmountFc { get; set; }
并在视图中使用
<td>@Html.DisplayFor(m => m.Transcation.AmountFc)</td>
将显示格式化的值(如果值为null
,则不显示任何内容)
此外,DisplayFormatAttribute
具有NullDisplayText
属性,用于确定值为null
时显示的内容(默认值为空string
),例如< / p>
[DisplayFormat(DataFormatString = "{0:#,##0.00}", NullDisplayText = "Not applicable")]
会生成
<td>Not applicable</td>
如果值为null
。