ASP.NET - MVC - HtmlHelper - CheckBox

HtmlHelper - CheckBox

Lớp HtmlHelper có hai phương thức mở rộng để tao CheckBox(<input type="checkbox"> trong Razor là : CheckBox()CheckBoxFor().

Ví dụ CheckBox() và CheckBoxFor():

public class Student
{
    public int StudentId { get; set; }
    [Display(Name="Name")]
    public string StudentName { get; set; }
    public int Age { get; set; }
    public bool isNewlyEnrolled { get; set; }
    public string Password { get; set; }
}

CheckBox()

Html.CheckBox () là một phương thức tạo ra <input type = "checkbox"> với tên được chỉ định, các thuộc tính boolean và html.

Cú pháp CheckBox()

MvcHtmlString CheckBox(string name, bool isChecked, object htmlAttributes)

CheckBox có nhiều phương thức. Vui lòng truy cập MSDN để biết tất cả overloads of CheckBox().

@Html.CheckBox("isNewlyEnrolled", true)

Kết quả:

<input checked="checked" 
        id="isNewlyEnrolled" 
        name="isNewlyEnrolled" 
        type="checkbox" 
        value="true" />

Trong ví dụ trên, tham số đầu tiên là thuộc tính "isNewlyEnrolled" của lớp Student  được đặt làm tên & id của CheckBox. Tham số thứ hai là giá trị boolean, kiểm tra hoặc bỏ chọn CheckBox.


CheckBoxFor

CheckBoxFor  tạo ra một phần tử <input type="checkbox"> 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 CheckBoxFor

MvcHtmlString CheckBoxFor(<Expression<Func<TModel,TValue>> expression, object htmlAttributes)

Xem thêm các phương thức trong CheckBoxFor .

@model Student

@Html.CheckBoxFor(m => m.isNewlyEnrolled)

Kết quả:

<input data-val="true" 
        data-val-required="The isNewlyEnrolled field is required." 
        id="isNewlyEnrolled" 
        name="isNewlyEnrolled" 
        type="checkbox" 
        value="true" />

<input name="isNewlyEnrolled" type="hidden" value="false" />

Trong ví dụ trên, tham số đầu tiên trong phương thức CheckBoxFor () là biểu thức lambda chỉ định thuộc tính trong Model được liên kết với phần tử CheckBox. Chúng ta đã chỉ định thuộc tính isNewlyEnrolled trong ví dụ trên. Vì vậy, nó tạo ra phần tử <input type = "CheckBox"> với id & name được đặt thành tên thuộc tính - isNewlyEnrolled. Thuộc tính value sẽ được đặt thành giá trị của thuộc tính boolean isNewlyEnrolled.

Trong kết quả Html ở trên, lưu ý rằng nó đã tạo thêm thuộc tính ẩn có cùng tên và value = false. Điều này là do khi bạn gửi form có checkbox, giá trị chỉ được gửi nếu Checkbox được chọn. Vì vậy, nếu bạn bỏ chọn checkbox thì sẽ không có gì được gửi đến máy chủ khi trong nhiều tình huống bạn muốn gửi là false.