2012-05-12 4 views
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> 

どちらのモデルでは小数点以下の特性がある...それは、文字列として戻って投稿しようとしている:

フィールドフォームの一部として?その後、私はそれを小数点に戻してポストバックする方法はありますか?何かご意見は?ありがとう。あなたのビューモデルでは

+2

は、我々はあなたのアクションメソッドを見ることができますか? – Shyju

+0

私の間違い...下のコメントを見る – 1Canuck16

答えて

2

はこれを試してみてください

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

そして、あなたのビューで:

@Html.EditorFor(model => model.Donation.Amount) 
関連する問題