Tôi có điều này để điền một danh sách thả xuống trong chế độ xem ASP.NET MVC.ASP.NET MVC: DropDownListFor không chọn bất kỳ tùy chọn
<%= Html.DropDownListFor(model => model.Bikes,
Model.Bikes.Select(
x => new SelectListItem {
Text = x.Name,
Value = Url.Action("Details", "Bike", new { bikeId = x.ID }),
Selected = x.ID == Model.ID,
})) %>
Gỡ rối này, tôi có thể thấy rằng Selected
tài sản được thiết lập để true
khi nó phải được. Nhưng khi khung nhìn được hiển thị, không có tùy chọn nào trong danh sách được chọn. Tôi nhận ra rằng điều này có thể được thực hiện với một tình trạng quá tải khác của DropDownListFor
nhưng tôi thực sự muốn phiên bản này hoạt động.
Bất kỳ ý tưởng nào?
Lưu ý rằng trong câu hỏi ban đầu, giá trị là URL. –
Có, tôi đã nhận thấy điều này, nhưng vì điều này dường như với tôi một ý tưởng tồi tôi đã đảo ngược chúng. Bằng cách đó là lý do tại sao giá trị bạn chọn không hoạt động. Bạn đang chuyển Model.Id dưới dạng giá trị đã chọn và sử dụng url làm giá trị tùy chọn. Không tốt.Tôi khuyên bạn nên giữ nguyên ID làm giá trị tùy chọn và nếu cần tìm nạp URL tương ứng trong hành động của trình điều khiển bạn đang gửi. Tôi không thấy hợp lý khi sử dụng url làm giá trị tùy chọn. –
Trong mã ban đầu của tôi, tôi không chuyển ID như các giá trị và URL đã chọn làm giá trị tùy chọn. Những gì tôi đang làm là đặt các giá trị thành URL và sau đó sử dụng điều kiện cần giữ cho mục sẽ được chọn. Và có thực sự bất kỳ lý do thuyết phục nào về lý do tại sao tôi không nên sử dụng URL cho các giá trị không? –