MODELSTATE.ISVALID LÀ GÌ

     

Bài viết này họ sẽ học tập về cơ chế mã sản phẩm Validation. Thường thì tài liệu được nhập bởi người dùng sẽ không phù hợp lệ và tất yêu đưa vào cửa hàng dữ liệu. Các dữ liệu được nhập rất có thể chứa một số lỗi thiết yếu tả hoặc người tiêu dùng cố tính nhập các dữ liệu không phù hợp. Vì thế chúng ta cần yêu cầu kiểm tra dữ liệu người tiêu dùng nhập vào trước khi lưu trữ vào cửa hàng dữ liệu. ASP.NET Core hỗ trợ chó bọn họ thành phần gọi là model Validator, nó dùng những attribute nhằm kiểm tra dữ liệu trong model thuận lợi hơn. Chúng ta cũng mày mò về ModelState và cách áp dụng nó.

Bạn đang xem: Modelstate.isvalid là gì

Giới thiệu về model Validation

Form Data post tài liệu lên Controller action tự động hóa được bản đồ vào những tham số của action bởi mã sản phẩm Binder như bọn họ đã tò mò ở bài trước. Model cần kiểm tra tài liệu đầu vào xem tất cả hợp lệ không. Quá trình kiểm tra này hoàn toàn có thể được ngừng bởi client trước lúc gửi lên hệ thống hoặc vps kiểm tra sau khi nhận được từ bỏ client. Qui định validation phía client (client-side validation) rất đặc trưng vì nó góp tăng trải nghiệm người tiêu dùng khi kiểm tra tài liệu mà không yêu cầu chờ cho server cơ mà phía server lại nên bảo đảm an toàn một lần tiếp nữa để các dữ liệu chưa phù hợp lệ không thể đưa vào hệ thống.

Sự đặc biệt của client-side validation

Giúp tăng sự trải nghiệmVì việc kiểm tra thực hiện phía trình chăm sóc client đề nghị phản hồi cấp tốc hơn và gần như là là ngay lập tức lập tứcTiết kiệm khoáng sản server như là băng thông bằng phương pháp giảm truy vấn cho server.

Sự quan trọng của server-side validation

Client-side validation cung ứng trải nghiệm bạn dùng xuất sắc hơn nhưng không tin tưởng cậy. Nó có thể lỗi do 1 trong những các vì sao sau:

Javascript hoàn toàn có thể bị tắt nghỉ ngơi trình duyệtNgười dùng hoàn toàn có thể gửi thẳng dữ liệuđến người tiêu dùng mà không sử dụng ứng dụng hoặc sử dụng một trong những các trình chỉnh sửa request tất cả hại.Khi Javascript gồm lỗi thì công dụng là tài liệu được chuyển vào hệ thống mà có thể không hợp lệ

Vì rứa điều quan trọng là kiểm tra dữ liệu phải được tiến hành ở cả phía server, ngay cả bạn vẫn validate làm việc phía client.

Kiểm tra model một giải pháp tường minh

Một khi chúng ta nhận mã sản phẩm trong controller, chúng ta có thể kiểm tra model đó bằng cách viết code như sau:

if (string.IsNullOrEmpty(model.Name)) //Validation Failed //Send the danh mục of errors to clientĐoạn code trên đối chọi thuần chỉ soát sổ xem thuộc tính name của mã sản phẩm có rỗng tốt null không. Đoạn code trên làm việc tốt, nhưng các bạn sẽ phải làm các lần tương tự như nếu có nhiều thuộc tính trong model, khi ấy bạn phải kiểm tra với những đoạn code giống nhau. Ở đây bạn phải xem làm thế nào để gửi các báo lỗi về client nhằm hiển thị cho người dùng. Model Validator sẽ có tác dụng điều này cho mình mà không bắt buộc viết các đoạn code quá thãi.

Xem thêm: Bật Mí Cách Đặt Tên Đề Tài Nghiên Cứu Khoa Học Của Sinh Viên, Học Viên Cao Học

Model Validation làm việc ra sao?

Chúng đã tò mò cơ chế model Binding thao tác ra sao trong ASP.NET vi xử lý core rồi đúng không? Vậy lúc HTTP Request được đưa tới Model Binder thì nó sẽ tiến hành gọi trước lúc truyền tham số vào Controller action. Model Binder sẽ không chỉ có map dư liệu vào action method nhưng nó còn khám nghiệm chúng sử dụng mã sản phẩm Validator.

Model Validator chạy sau model binding cùng chạy một loạt các logic kiểm tra trên mỗi thuộc tính của model dựa trên các attribute các bạn đặt cho những thuộc tính đó. Những attribute này call là Validation Attribute và đựng code áp dụng bởi model Validator.

*

Tất cả những logic chất vấn đều chạy phía server. ASP.NET Core có không ít các attribute viết sẵn, bạn cũng có thể thêm nó vào nằm trong tính của model để setup quy tắc kiểm tra. Những quy tắc này cũng rất được gọi là DataAnnotations và phía trong namespace: System.ComponentModel.DataAnnotations. Bạn cần import nó vào ViewModel và sử dụng.

Ví dụ, các bạn đặt trường sẽ phải nhập sẽ cần sử dụng

Public string Name get;set;Model Binder không phun ra bất kể lỗi nào nếu quá trình kiểm tra chưa phù hợp lệ. Nhưng mà nó sẽ cập nhật đối tượng ModelState với list lỗi cùng đặt thuộc tính IsValid false trước lúc gọi action method. Chúng ta cần bình chọn ModelState.IsValid để hiểu xem quá trình kiểm tra bao gồm hợp lệ hay là không để kích hoạt method hoàn toàn có thể trả về danh sách lỗi nếu như cần.

Xem thêm: Microsoft Lync Là Gì - Các Tác Vụ Cơ Bản Trong Lync

if (ModelState.IsValid) //Model is valid. điện thoại tư vấn Service layer for further processing of data else //Validation failed. Return the mã sản phẩm to the user with the relevant error messages

Cách sử dụng Validation Attributes

Cập nhật model với Data Annotaion

Trong Model, ở trong tính chế tạo Data Annotation attribute được hiển thị dưới đây. Code sẽ tiến hành thêm vào attribute cho thuộc tính Name. Nó cũng được thiết đặt thông báo vào trường hợp kiểm tra tài liệu không phù hợp lệ cùng với attribute đó:

public string Name get; set;

Hiển thị list lỗi Validations

Trong view, sử cần sử dụng Validation Tag Helper để hiển thị lỗi cho những người dùng. Tag helper asp-validation-summary giúp hiển thị danh sách các thông báo lỗi mang lại riêng model validation trên form. Nó được đã tích hợp thẻ div và bỏ lên trên cùng của form. asp-validation-for hiển thị danh sách lỗi mang lại thuộc tính Name ở phía bên cần của nó. Nó được đã nhập vào thẻ span với đặt ngay bên cạnh thuộc tính.

Validation tag helper thêm classfield-validation-error và validation-summary-errors vào HTML giả dụ lỗi search thấy. Chính vì vậy chúng a thêm các style CSS vào để hiển thị lỗi red color cho những class này. Chúng ta có thể tham khảo thêm phần Validation Tag Helper ở bài bác sau: