Anotacje stanu modelu i danych w C# zapewniają nam wygodny sposób na żądanie weryfikacji danych. Weryfikacja modelu ModelState oznacza po prostu pomoc backendowi w oszczędzaniu wielu obowiązków związanych z weryfikacją parametrów, wystarczy dodać odpowiadające mu funkcje do modelu i na końcu wywołać ModelState.IsValid w kontrolerze, aby uzyskać wyniki weryfikacji. Bez ModelState walidacja parametrów backendowych może wymagać pisania wielu osądów IF.
Wymagania: Oceniamy, czy parametry POST przeszły weryfikację modelu w filtrze, jeśli nie przechodzą weryfikacji, zwracamy bezpośrednio zunifikowany komunikat o błędzie json dopiero po przejściu weryfikacji, a następnie wprowadzamy metodę kontrolera, a zaletą tego jest to,Nie musimy oceniać każdego kontrolera i robić powtarzalnej pracy。
Przejrzyj walidację modelu ModelState
Filtry recenzji
Powtórz swoją wiedzę z ASP.NET Core
System z góry definiuje atrybut ValidationAttribute Zestaw cech walidacyjnych dziedziczących atrybut ValidationAttribute jest definiowany w przestrzeni nazw System.ComponentModel.DataAnnotations.
- RequiredAttribute: Używany do weryfikacji wymaganych pól danych.
- RangeAttribute: Służy do weryfikacji, czy wartość pola numerycznego mieści się w określonym zakresie.
- StringLengthAttribute: Służy do weryfikacji, czy długość ciągu pola docelowego mieści się w określonym zakresie.
- MaxLengthAttribute/MinLengthAttribute: Służy do weryfikacji, czy długość słownika znaków/tablicy jest mniejsza lub większa niż określona górna/dolna granica.
- RegularExpressionAttribute: Używany do weryfikacji, czy format pola ciągu odpowiada określonemu wyrażeniu regularnemu.
- CompareAttribute: Służy do weryfikacji, czy wartość pola docelowego jest zgodna z wartością innego pola i może być użyta do potwierdzenia spójności podwójnego wpisania hasła w scenariuszu rejestracji użytkownika.
- CustomValidationAttribute: Określa typ walidacji oraz metodę walidacji docelowego członka.
Oczywiście możemy także zdefiniować reguły walidacji, dziedzicząc klasę ValidationAttribute i implementując odpowiadającą metodę.
Przyjrzyjmy się najpierw renderom, komunikat o błędzie jest zwracany przez interfejs tła, w następujący sposób:
Kod modelu obiektowego:
Kod filtra ModelStateFilter:
Kod IsAjaxRequest wygląda następująco:
Na koniec, dodaj niestandardowy filtr do pliku Startup, a kod wygląda następująco:
(Koniec)
|