ASP.NET - MVC - DropDownList
HtmlHelper - DropDownList
Lớp HtmlHelper có hai phương thức mở rộng để tao <Select> trong Razor là : DropDownList() và DropDownListFor().
Ví dụ DropDownList() và DropDownListFor():
public class Student
{
public int StudentId { get; set; }
[Display(Name="Name")]
public string StudentName { get; set; }
public Gender StudentGender { get; set; }
}
public enum Gender
{
Male,
Female
}
DropDownList()
Phương thức Html.DropDownList () tạo ra một phần <select> có tên, mục danh sách và thuộc tính html.
Cú pháp phương thúc DropDownList()
MvcHtmlString Html.DropDownList(string name, IEnumerable<SelectLestItem> selectList, string optionLabel, object htmlAttributes)
DropDownList có nhiều nhiều phương. Vui lòng truy cập MSDN để biết tất cả DropDownList.
using MyMVCApp.Models
@model Student
@Html.DropDownList("StudentGender",
new SelectList(Enum.GetValues(typeof(Gender))),
"Select Gender",
new { @class = "form-control" })
Kết quả:
<select class="form-control" id="StudentGender" name="StudentGender">
<option>Select Gender</option>
<option>Male</option>
<option>Female</option>
</select>
Trong ví dụ trên, tham số đầu tiên là tên thuộc tính mà chúng tôi muốn hiển thị các mục danh sách. Tham số thứ hai là danh sách các giá trị được đưa vào danh sách. Chúng ta đã sử dụng các phương thức Enum để tạo các giá trị enum giới tính. Tham số thứ ba là nhãn sẽ là mục danh sách đầu tiên và tham số thứ tư dành cho các thuộc tính html như css được áp dụng trên danh sách.
Xin lưu ý rằng bạn có thể thêm namespace MyMVCApp.Models vào phần <namespace> trong web.config trong thư mục View thay vì sử dụng @using gồm các tên trong View.
DropDownListFor
DropDownListFor tạo ra một phần tử <select> với thuộc tính model xác định sử dụng một biểu thức lambda.
Cú pháp phương thức DropDownListFor
MvcHtmlString Html.DropDownListFor(Expression<Func<dynamic,TProperty>> expression, IEnumerable<SelectLestItem> selectList, string optionLabel, object htmlAttributes)
DropDownListFor có nhiều phương thức. Vui lòng truy cập MSDN để biết tất cả DropDownListFor.
Ví dụ sau đây tạo danh sách sử dụng đối tượng enum.
@using MyMVCApp.Models
@model Student
@Html.DropDownListFor(m => m.StudentGender,
new SelectList(Enum.GetValues(typeof(Gender))),
"Select Gender")
Kết quả HTML
<select class="form-control" id="StudentGender" name="StudentGender">
<option>Select Gender</option>
<option>Male</option>
<option>Female</option>
</select>
Trong ví dụ trên, tham số đầu tiên trong phương thức DropDownListFor () là biểu thức lambda chỉ định thuộc tính trong Model được liên kết với phần tử select. Chúng ta đã chỉ định thuộc tính StudentGender thuộc loại enum. Tham số thứ hai chỉ định các mục sẽ hiển thị trong dropdown bằng cách sử dụng SelectList. Tham số thứ ba là optionLabel sẽ là mục đầu tiên của danh sách. Vì vậy, bây giờ, nó tạo phần tử <select> với id & name được đặt thành tên thuộc tính - StudentGener và hai mục danh sách - Nam & Nữ như hiển thị bên dưới.