Câu trả lời:
Xem bài viết MSDN này và sử dụng ví dụ ở đây trên Stack Overflow .
Giả sử bạn có lớp Linq / POCO sau:
public class Color
{
public int ColorId { get; set; }
public string Name { get; set; }
}
Và hãy nói rằng bạn có mô hình sau:
public class PageModel
{
public int MyColorId { get; set; }
}
Và cuối cùng, hãy nói rằng bạn có danh sách các màu sau đây. Họ có thể đến từ một truy vấn Linq, từ một danh sách tĩnh, v.v.:
public static IEnumerable<Color> Colors = new List<Color> {
new Color {
ColorId = 1,
Name = "Red"
},
new Color {
ColorId = 2,
Name = "Blue"
}
};
Theo quan điểm của bạn, bạn có thể tạo một danh sách thả xuống như vậy:
<%= Html.DropDownListFor(n => n.MyColorId,
new SelectList(Colors, "ColorId", "Name")) %>
<%:
Html.DropDownListFor(
model => model.Color,
new SelectList(
new List<Object>{
new { value = 0 , text = "Red" },
new { value = 1 , text = "Blue" },
new { value = 2 , text = "Green"}
},
"value",
"text",
Model.Color
)
)
%>
hoặc bạn có thể viết không có lớp, đặt một cái gì đó như thế này trực tiếp để xem.
Tránh nhiều ngón tay mập bằng cách bắt đầu với Từ điển trong Mô hình
namespace EzPL8.Models
{
public class MyEggs
{
public Dictionary<int, string> Egg { get; set; }
public MyEggs()
{
Egg = new Dictionary<int, string>()
{
{ 0, "No Preference"},
{ 1, "I hate eggs"},
{ 2, "Over Easy"},
{ 3, "Sunny Side Up"},
{ 4, "Scrambled"},
{ 5, "Hard Boiled"},
{ 6, "Eggs Benedict"}
};
}
}
Trong phần Xem, chuyển đổi nó thành một danh sách để hiển thị
@Html.DropDownListFor(m => m.Egg.Keys,
new SelectList(
Model.Egg,
"Key",
"Value"))
Xin chào, đây là cách tôi đã thực hiện trong một Dự án:
@Html.DropDownListFor(model => model.MyOption,
new List<SelectListItem> {
new SelectListItem { Value = "0" , Text = "Option A" },
new SelectListItem { Value = "1" , Text = "Option B" },
new SelectListItem { Value = "2" , Text = "Option C" }
},
new { @class="myselect"})
Tôi hy vọng nó sẽ giúp được ai đó. Cảm ơn
Hoặc nếu đó là từ bối cảnh cơ sở dữ liệu bạn có thể sử dụng
@Html.DropDownListFor(model => model.MyOption, db.MyOptions.Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }))
Với "Vui lòng chọn một mục"
@Html.DropDownListFor(model => model.ContentManagement_Send_Section,
new List<SelectListItem> { new SelectListItem { Value = "0", Text = "Plese Select one Item" } }
.Concat(db.NameOfPaperSections.Select(x => new SelectListItem { Text = x.NameOfPaperSection, Value = x.PaperSectionID.ToString() })),
new { @class = "myselect" })
Bắt nguồn từ các mã: Lập trình viên chính && Joel Wahlund ;
Tham khảo về vua: https://stackoverflow.com/a/1528193/1395101 JaredPar ;
Cảm ơn Lập trình viên chính && Joel Wahlund && JaredPar ;
Chúc các bạn may mắn.
@using (Html.BeginForm()) {
<p>Do you like pizza?
@Html.DropDownListFor(x => x.likesPizza, new[] {
new SelectListItem() {Text = "Yes", Value = bool.TrueString},
new SelectListItem() {Text = "No", Value = bool.FalseString}
}, "Choose an option")
</p>
<input type = "submit" value = "Submit my answer" />
}
Tôi nghĩ rằng câu trả lời này tương tự như của Berat, ở chỗ bạn đặt tất cả mã cho DropDownList của bạn trực tiếp trong chế độ xem. Nhưng tôi nghĩ rằng đây là một cách hiệu quả để tạo danh sách thả xuống ay / n (boolean), vì vậy tôi muốn chia sẻ nó.
Một số lưu ý cho người mới bắt đầu:
Hy vọng điều này sẽ giúp ai đó,