Modelstate.isvalid là gì

     

Bài viết này họ sẽ học tập về cơ chế model Validation. Thường thì dữ liệu được nhập bởi người dùng sẽ chưa hợp lệ và chẳng thể đưa vào các đại lý dữ liệu. Các dữ liệu được nhập hoàn toàn có thể chứa một trong những lỗi bao gồm tả hoặc người tiêu dùng cố tính nhập những dữ liệu ko phù hợp. Bởi thế chúng ta cần bắt buộc 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 cung cấp chó bọn họ thành phần điện thoại tư vấn là model Validator, nó dùng các attribute để kiểm tra tài liệu trong model dễ dãi hơn. Bọn họ cũng khám phá về ModelState và cách sử dụng nó.

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

Giới thiệu về mã sản phẩm Validation

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

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

Giúp tăng sự trải nghiệmVì vấn đề kiểm tra thực hiện phía trình chăm sóc client đề xuất phản hồi cấp tốc hơn và gần như là ngay 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 tróc nã vấn đến server.

Sự quan trọng đặc biệt của server-side validation

Client-side validation cung ứng trải nghiệm bạn dùng tốt hơn nhưng không tin cậy. Nó hoàn toàn có thể lỗi do một trong các các vì sao sau:

Javascript hoàn toàn có thể bị tắt sinh sống trình duyệtNgười dùng rất có thể gửi trực tiếp 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 số trong những các trình sửa đổi request tất cả hại.Khi Javascript gồm lỗi thì hiệu quả là tài liệu được gửi vào khối hệ thống mà hoàn toàn có thể không hợp lệ

Vì cụ điều đặc trưng là kiểm tra tài liệu phải được triển khai ở cả phía server, ngay cả bạn vẫn validate ngơi nghỉ 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 mã sản phẩm đó bằng phương pháp viết code như sau:

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

Xem thêm: In Ốp Lưng Điện Thoại Vsmart Star 3 Theo Yêu Cầu, Ốp Lưng Vsmart Chính Hãng, Giá Rẻ Tháng 4/2022

Model Validation thao tác làm việc ra sao?

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

Model Validator chạy sau mã sản phẩm binding với chạy một loạt các logic khám nghiệm trên mỗi thuộc tính của model dựa trên các attribute các bạn đặt cho các thuộc tính đó. Những attribute này hotline là Validation Attribute và chứa code áp dụng bởi model Validator.

*

Tất cả những logic khám nghiệm đều chạy phía server. ASP.NET Core có tương đối nhiều các attribute viết sẵn, chúng ta có thể thêm nó vào nằm trong tính của model để thiết lập quy tắc kiểm tra. Các quy tắc này cũng được gọi là DataAnnotations và bên 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ẽ dùng

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

Xem thêm: Sinh Tố Dưa Hấu Sữa Chua: Cách Làm Sinh Tố Dưa Hấu Sữa Chua Cho Bé

if (ModelState.IsValid) //Model is valid. Hotline 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 áp dụng Validation Attributes

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

Trong Model, ở trong tính thêm và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 setup thông báo vào trường đúng theo kiểm tra dữ 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ử dùng Validation Tag Helper để hiển thị lỗi cho tất cả những người dùng. Tag helper asp-validation-summary giúp hiển thị danh sách các thông tin lỗi cho riêng mã sản phẩm validation bên trên form. Nó được đã tích hợp thẻ div và để lên cùng của form. asp-validation-for hiển thị danh sách lỗi mang đến thuộc tính Name ở phía bên phải của nó. Nó được đã nhập vào thẻ span với đặt ngay cạnh thuộc tính.

Validation tag helper thêm classfield-validation-error với validation-summary-errors vào HTML ví như lỗi tìm thấy. Chính vì như vậy chúng a thêm những style CSS vào để hiển thị lỗi màu đỏ cho những class này. Các bạn có thể đọc thêm phần Validation Tag Helper ở bài bác sau: