ASP.NET - MVC - ValidationMessageFor
ValidationMessageFor trong MVC
Html.ValidationMessageFor () là một phương thức mở rộng với thuộc tính xác định sử dụng một biểu thức lambda. Nó hiển thị thông báo xác nhận nếu có lỗi tồn tại cho trường được chỉ định trong đối tượng ModelStateDipedia.
Cú pháp ValidationMessageFor()
MvcHtmlString ValidateMessage(Expression<Func<dynamic,TProperty>> expression, string validationMessage, object htmlAttributes)
Xem thêm các phương thức của ValidationMessageFor.
Ví dụ về ValidationMessageFor
@model Student
@Html.EditorFor(m => m.StudentName) <br />
@Html.ValidationMessageFor(m => m.StudentName, "", new { @class = "text-danger" })
Trong ví dụ trên, tham số đầu tiên trong phương thức ValidationMessageFor là biểu thức lambda để chỉ định một thuộc tính mà chúng ta muốn hiển thị thông báo lỗi. Tham số thứ hai dành cho thông báo lỗi tùy chỉnh và tham số thứ ba dành cho các thuộc tính html như css, style, v.v.
Phương thức ValidationMessageFor () sẽ chỉ hiển thị lỗi nếu bạn đã cấu hình thuộc tính DataAnnotations cho thuộc tính được chỉ định trong lớp mô hình. Ví dụ sau đây là lớp mô hình Sinh viên trong đó thuộc tính "Required" được áp dụng cho thuộc tính StudentName.
Ví dụ : Model Student
public class Student
{
public int StudentId { get; set; }
[Required]
public string StudentName { get; set; }
public int Age { get; set; }
}
Đoạn mã trên sẽ tạo ra html sau.
<input id="StudentName"
name="StudentName"
type="text"
value="" />
<span class="field-validation-valid text-danger"
data-valmsg-for="StudentName"
data-valmsg-replace="true">
</span>
Bây giờ, khi người dùng submit mà không nhập StudentName thì ASP.NET MVC sử dụng thuộc tính dữ liệu của Html5 để xác thực và thông báo xác thực mặc định sẽ được đưa vào khi xảy ra lỗi xác thực, như hiển thị bên dưới.
<span class="field-validation-error text-danger"
data-valmsg-for="StudentName"
data-valmsg-replace="true">The StudentName field is required.</span>
Thông báo lỗi sẽ xuất hiện như hình ảnh hiển thị bên dưới.
Tùy chỉnh thông báo lỗi
Bạn có thể hiển thị thông báo lỗi của riêng bạn thay vì thông báo lỗi mặc định như được hiển thị ở trên. Bạn có thể cung cấp một thông báo lỗi tùy chỉnh trong thuộc tính DataAnnotations hoặc phương thức ValidationMessageFor ().
Sử dụng tham số của các thuộc tính DataAnnotation để cung cấp thông báo lỗi tùy chỉnh của riêng bạn như hiển thị bên dưới.
Ví dụ thông báo lỗi tùy chỉnh trong Model
public class Student
{
public int StudentId { get; set; }
[Required(ErrorMessage="Please enter student name.")]
public string StudentName { get; set; }
public int Age { get; set; }
}
Ngoài ra, bạn có thể chỉ định một thông báo là tham số thứ hai trong phương thức ValidationMessage () như hiển thị bên dưới.
@model Student
@Html.Editor("StudentName") <br />
@Html.ValidationMessageFor(m => m.StudentName, "Please enter student name.", new { @class = "text-danger" })