我有一个我预先填充的金额字段。当我运行网络应用程序时,它出现为125.4500。我试着格式化它,但我没有运气。
这是我的PaymentModel:
[Required]
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
[Display(Name = "Payment Amount")]
public decimal Amount { get; set; }
DataFormatString
似乎没有任何影响。
我的代码在表格上:
@Html.TextBoxFor(m => m.Amount, new { @class = "makePaymentTextRight width90" })
我试过了:
@Html.TextBoxFor(m => string.Format("{0:F2}",m.Amount), new { @class = "makePaymentTextRight width90" })
但是这给了我这个错误:
System.InvalidOperationException:模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。
如何将其格式化为2位小数?
答案 0 :(得分:2)
DisplayFormatAttribute
只有在使用EditorFor()
和DisplayFor()
方法时才会得到尊重(使用内置模板)
要格式化值,请使用TextBoxFor()
的{{3}},其中第二个参数是格式字符串
@Html.TextBoxFor(m => m.Amount, "{0:F2}", new { @class = "makePaymentTextRight width90" })