ASP.NET - MVC - HtmlHelper - TextArea

HtmlHelper - TextArea

Lớp HtmlHelper có hai phương thức mở rộng để tạo phần tử <textarea> nhiều dòng trong Razor: TextArea () và TextAreaFor (). Theo mặc định, nó tạo ra textarea với hàng = 2 và cols = 20.

Chúng ta  sẽ sử dụng Model Student  với phương thức TextArea () và TextAreaFor ().

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

TextArea()

 Html.TextArea () tạo phần tử <textarea rows = "2" cols = "20"> với các thuộc tính tên, giá trị và html.

Cú pháp phương thức TextArea() 

MvcHtmlString Html.TextArea(string name, string value, object htmlAttributes)

TextArea có nhiều phương thức khởi tạo. Xem tại overloads of TextArea.

TextArea () có tham số tên là một chuỗi. Tham số tên có thể là tên thuộc tính của đối tượng. Nó liên kết một thuộc tính được chỉ định với textarea. Vì vậy, nó tự động hiển thị một giá trị  trong một văn bản và ngược lại.

@model Student

@Html.TextArea("Description", null, new { @class = "form-control" }) 

Kết quả:

<textarea class="form-control" 
            id="Description" 
            name="Description" 
            rows="2"
            cols="20">This is value</textarea>

Trong ví dụ trên, tham số đầu tiên là thuộc tính "Description" của lớp Student được đặt làm tên & id trong textarea. Tham số thứ hai là một giá trị để hiển thị trong textarea, không có giá trị trong ví dụ trên vì phương thức TextArea () sẽ tự động hiển thị một giá trị của thuộc tính Description trong textarea. Tham số thứ ba sẽ được đặt làm thuộc tính lớp. Tham số HtmlAttribut là một loại đối tượng, vì vậy nó có thể là đối tượng ẩn danh và tên thuộc tính sẽ là thuộc tính của nó bắt đầu bằng ký hiệu @.

Bạn cũng có thể chỉ định bất kỳ tên nào cho textarea. Tuy nhiên, nó sẽ không bị ràng buộc với một model.

@Html.TextArea("myTextArea", "This is value", new { @class = "form-control" }) 

Kết quả:

<textarea class="form-control" 
            cols="20" 
            id="myTextArea" 
            name="myTextArea" 
            rows="2">This is value</textarea>


TextAreaFor

 TextAreaFor tạo ra một phần tử textarea 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 TextAreaFor

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

Xem thêm các phương thức overloads of TextAreaFor().

@model Student

@Html.TextAreaFor(m => m.Description, new { @class = "form-control" })  

Kết quả:

<textarea class="form-control" 
            cols="20" 
            id="Description" 
            name="Description" 
            rows="2"></textarea>

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