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 DropDownListFor
yê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 ContribType
thì (tất nhiên) là null.
cách chính xác để làm điều này là gì?