Modeltilstands- og dataannoteringer i C# giver os en bekvem måde at anmode om dataverifikation på. ModelState-modelverifikation betyder ganske enkelt, at backenden sparer en masse parameterverifikationsarbejde, blot tilføjer tilsvarende funktioner til modellen og til sidst kalder ModelState.IsValid i controlleren for at få verifikationsresultaterne. Uden ModelState kan vores validering af backend-parametre have brug for at skrive mange if-vurderinger.
Krav: Vi vurderer, om parametrene for POST har bestået modelverifikationen i filteret, hvis de ikke består verifikationen, returnerer vi direkte en samlet json-fejlmeddelelse, først efter verifikationen er bestået, og derefter indtaster vi controller-metoden, fordelen ved dette er,Vi behøver ikke at bedømme hver controller og lave gentagende arbejde。
Gennemgå valideringen af ModelState-modellen
Anmeldelsesfiltre
Gennemgå din viden om ASP.NET Core
Systemet foruddefinerer ValidationAttribute Et sæt valideringsfunktioner, der arver fra ValidationAttribut, er defineret under System.ComponentModel.DataAnnotations-navnerummet.
- RequiredAttribute: Bruges til at validere nødvendige datafelter.
- RangeAttribute: Bruges til at verificere, at værdien af et numerisk felt ligger inden for det angivne interval.
- StringLengthAttribute: Bruges til at verificere, at strenglængden af målfeltet ligger inden for det specificerede interval.
- MaxLengthAttribute/MinLengthAttribute: Bruges til at verificere, om længden af tegn-/array-ordbogen er mindre end/større end den angivne øvre/nedre grænse.
- RegularExpressionAttribute: Bruges til at verificere, at formatet på strengfeltet matcher det specificerede regulære udtryk.
- CompareAttribute: Bruges til at verificere, om værdien af målfeltet er konsistent med værdien af et andet felt, og kan bruges til at bekræfte konsistensen ved at indtaste adgangskoden to gange i en brugerregistreringssituation.
- CustomValidationAttribute: Specificerer en valideringstype og valideringsmetode til at validere målmedlemmet.
Selvfølgelig kan vi også definere reglerne for validering ved at arve ValidationAttribut-klassen og implementere den tilsvarende metode.
Lad os først se på renderingen, fejlmeddelelsen returneres af baggrundsinterfacet som følger:
Objektmodelkode:
ModelStateFilter filterkode:
IsAjaxRequest-koden er som følger:
Tilføj endelig et brugerdefineret filter til Startup-filen, koden er som følger:
(Slut)
|