0
我在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; }
}
剃鬚刀使用:
<div class="editor-label">
@Html.LabelFor(model => model.ClientTypeID)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.ClientTypeID,Model.ClientTypes)
</div>
在控制器我填的是ClientTypes數據。 當我用它來創建一個新的dto對象時,它可以正常工作,並將選擇轉移回控制器並保存。 當我使用它來編輯一個現有的對象時,它也可以正常工作,當頁面打開時選擇適當的值。
問題是,當我改變選擇時,它不會回發給控制器,而其他編輯的值會正確返回。
任何人都可以指出我的問題的方向?
謝謝。
我似乎錯過了最後@ Model.TheChoice部分。但是增加等價物並沒有改變事物。它仍然適用於所有情況,除了將更新的值發送回控制器。 – Zaak
爲了澄清,如果您在控制器操作中放置斷點並檢查從視圖返回的viewmodel參數,您會發現viewmodel參數中的ClientID值具有* old *值,而不是* new * ? – itsmatt
不是cliendID,而是ClientTypeID,但是,這是正確的。我可以看到來自VM的所有值,並且文本字段被更新,只是ClientTypeID不是。它仍然是舊的價值。我已經得出結論,這意味着它被正確地發送到那裏,並且再次返回,只是沒有在那裏更新。我不知道爲什麼。 – Zaak