Tôi biết có nhiều câu hỏi tương tự, nhưng tôi đã dành hàng giờ cố gắng tìm ra điều này và không có câu trả lời nào khác có vẻ hữu ích!DropDownListFor - hiển thị một danh sách đơn giản của các chuỗi
Tôi muốn chỉ hiển thị danh sách các chuỗi trong danh sách thả xuống sử dụng MVC. Điều này thực sự khó khăn như vậy? Tôi không có một "văn bản" và "Giá trị" tách (athough MVC xuất hiện để yêu cầu một) - chuỗi hiển thị cho người dùng là giá trị của tôi.
Tôi đã có những điều sau đây cho đến nay:
Bộ điều khiển:
public ActionResult Index()
{
return View(new HomeViewModel());
}
ViewModel:
public class HomeViewModel
{
public HomeViewModel()
{
Items = new SelectList(new[]
{
new SelectListItem { Text = "One", Value = "One" },
new SelectListItem { Text = "Two", Value = "Two" },
});
}
public SelectList Items { get; set; }
}
Xem:
<% using (Html.BeginForm()) { %>
<% Html.DropDownListFor(x => x.Items, Model.Items); %>
<input type="submit" value="Go!" />
<% } %>
Nhưng gì Tôi dường như dẫn đến một danh sách thả xuống được hiển thị. Tôi đang làm gì sai?
Arrgh, thật là một sai lầm ngu ngốc! Bây giờ tôi có thể thấy một danh sách thả xuống với 2 mục nhưng cả hai đều nói System.Web.Mvc.SelectListItem. Có vẻ như có điều gì đó sai trái với lời gọi của tôi về hàm tạo của SelectList? – Grokys
Ồ vâng - trong hàm tạo, bạn phải chỉ định trường nào bạn muốn hiển thị trong DropDown. Nếu không những gì bạn nhận được là mặc định SelectListItem.ToString(). – Yakimych
Cảm ơn bạn, bản cập nhật 2 của bạn chính xác là những gì tôi đang tìm :) – Grokys