1

当我回发以下字段时出现此错误:无法将“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>

这两个都是模型中的小数属性......然后它试图作为字符串回发吗?那么如何在回发之前将其转换回小数呢?有什么想法吗?谢谢。

4

1 回答 1

2

试试这个:

在您的视图模型中:

[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)]
public decimal Amount { get; set; }

在您看来:

@Html.EditorFor(model => model.Donation.Amount)
于 2012-05-12T23:39:26.417 回答