ASP.MVC3のドロップダウンリストに奇妙な問題があります。asp.mvc3 @ Html.DropDownListFor <>が正しく動作しません。
public class dto{
[Key]
public Int32 ClientID { get; set; }
[Required, MaxLength(50)]
public Name{get;set;}
public int ClientTypeID { get; set; }
public SelectList ClientTypes { get; set; }
}
カミソリの使用:私はデータをClientTypesを埋めるコントローラで
<div class="editor-label">
@Html.LabelFor(model => model.ClientTypeID)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.ClientTypeID,Model.ClientTypes)
</div>
私はこのようになりますビューモデルを持っています。 私は新しいdtoオブジェクトを作成するためにそれを使用するとうまく動作し、選択はコントロールに戻されて保存されます。 既存のオブジェクトを編集するときにもうまく動作し、ページが開くときに適切な値が選択されます。
問題は、選択を変更すると、他の編集された値が正しく返される間、コントロールにポストされないということです。
問題の方向を誰かが指摘できますか?
ありがとうございます。
最後の@ Model.TheChoice部分が欠落しているようです。しかし、同値を加えても事は変わらなかった。更新された値をControllerに送り返す以外は、すべてのシナリオで動作します。 – Zaak
コントローラのアクションにブレークポイントを設定し、ビューから返されたviewmodel引数を調べると、viewmodel引数のClientID値に* old *値があり、* new * ? – itsmatt
はcliendIDではなくClientTypeIDですが、正しいです。私はVMからすべての値を見ることができ、テキストフィールドは更新され、ClientTypeIDは更新されません。それはまだ古い価値です。私は、それが正しくそこに送られ、そしてまた戻ってくることを意味すると結論づけました、ちょうどそこで更新されません。そして私は理由を知らない。 – Zaak