Tôi đang gặp sự cố với DropDownListFor
trong ứng dụng MVC3 của mình. Tôi đã có thể sử dụng StackOverflow để tìm ra cách để chúng xuất hiện trên View, 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 View Model khi nó được submit. Để có được điều này để làm việc tôi đã phải tạo ra một lớp bên trong đã có một ID và một tài sản giá trị, sau đó tôi đã phải sử dụng một IEnumerable<Contrib>
để đáp ứng các yêu cầu tham số DropDownListFor
. Bây giờ, tuy nhiên, làm thế nào là MVC FW phải ánh xạ giá trị được chọn trên trình đơn thả xuống này trở lại thuộc tính chuỗi đơn giản trên mô hình khung nhìn của tôi?MVC3 DropDownListFor - một ví dụ đơn giản?
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 Xem của tôi, tôi đặt thả xuống trên trang như thế này:
<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 các ContribType
là (tất nhiên) null.
Cách chính xác để thực hiện việc này là gì?
THANK YOU !!! Sergey, đây chính xác là những gì tôi đã tìm kiếm trong nhiều giờ. –
Cảm ơn :) cho câu trả lời của bạn Có cách nào để hiển thị "- Chọn--" từ đây không. ? – kbvishnu
@VeeKeyBee, bạn có thể thêm mục mới vào danh sách 'contribTypeOptions', ví dụ' ContribId mới {ContribId = -1, Value = "Please Select"} 'và nó sẽ được hiển thị trong danh sách thả xuống. Hơn bạn có thể kiểm tra xem 'ContribType' là' -1' điều này có nghĩa là người dùng chưa chọn bất kỳ giá trị nào –