Tôi đang gặp sự cố với DropDownListForứng dụng MVC3 của mình. Tôi đã có thể sử dụng StackOverflow để tìm cách làm cho chúng xuất hiện trên Chế độ xem, nhưng bây giờ tôi không biết cách nắm bắt các giá trị trong các thuộc tính tương ứng của nó trên Mô hình chế độ xem khi nó được gửi. Để làm được điều này, tôi phải tạo một lớp bên trong có ID và thuộc tính giá trị, sau đó tôi phải sử dụng một IEnumerable<Contrib>để đáp ứng các DropDownListForyêu cầu tham số. Tuy nhiên, bây giờ, MVC FW phải ánh xạ giá trị được chọn trên menu thả xuống này như thế nào vào thuộc tính chuỗi đơn giản trên mô hình chế độ xem của tôi?
public class MyViewModelClass
{
public class Contrib
{
public int ContribId { get; set; }
public string Value { get; set; }
}
public IEnumerable<Contrib> ContribTypeOptions =
new List<Contrib>
{
new Contrib {ContribId = 0, Value = "Payroll Deduction"},
new Contrib {ContribId = 1, Value = "Bill Me"}
};
[DisplayName("Contribution Type")]
public string ContribType { get; set; }
}
Trong Chế độ xem của tôi, tôi đặt menu thả xuống trên trang như sau:
<div class="editor-label">
@Html.LabelFor(m => m.ContribType)
</div>
<div class="editor-field">
@Html.DropDownListFor(m => m.ContribTypeOptions.First().ContribId,
new SelectList(Model.ContribTypeOptions, "ContribId", "Value"))
</div>
Khi tôi gửi biểu mẫu ContribTypethì (tất nhiên) là null.
cách chính xác để làm điều này là gì?