当我回发下面的字段时,我收到此错误:无法将“System.Decimal”类型的对象强制转换为“System.String”。
作为表单一部分的字段:
<div class="editor-label">
@Html.LabelFor(model => model.Donation.Amount)
</div>
<div class="editor-field">
@Html.TextBox("Amount", string.Format("{0:f2}", Model.Donation.Amount))
<!-- @Html.EditorFor(model => model.Donation.Amount) -->
@Html.ValidationMessageFor(model => model.Donation.Amount)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Pledge.PledgeTotal)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Pledge.PledgeTotal)
@Html.ValidationMessageFor(model => model.Pledge.PledgeTotal)
</div>
这两个都是模型中的十进制属性...它是否尝试以字符串形式发回?然后如何在回发之前将其转换回小数?有什么想法吗?感谢。
答案 0 :(得分:2)
试试这个:
在您的视图模型中:
[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
public decimal Amount { get; set; }
在你看来:
@Html.EditorFor(model => model.Donation.Amount)