Anotace stavu modelu a dat v C# nám poskytují pohodlný způsob, jak požádat o ověření dat. ModelState modelové ověření jednoduše znamená pomoci backendu ušetřit spoustu práce s ověřováním parametrů, stačí přidat odpovídající funkce do modelu a nakonec zavolat ModelState.IsValid v řadiči, abyste získali výsledky ověření. Bez ModelState by naše validace backendových parametrů mohla potřebovat napsat hodně if úsudků.
Požadavky: Posuzujeme, zda parametry POST prošly ověřením modelu ve filtru, pokud ověření neprošly, přímo vrátíme chybovou zprávu o jednotném JSON, až po úspěšném ověření, a poté zadáme řídicí metodu, výhodou je,Nemusíme soudit každý ovladač a dělat opakující se práci。
Prohlédněte si validaci modelu ModelState
Filtry recenzí
Opakujte si znalosti ASP.NET Core
Systém předdefinuje atribut ValidationAttribute Sada validačních funkcí, které dědí z atributu ValidationAtribut, je definována v jmenném prostoru System.ComponentModel.DataAnnotations.
- RequiredAttribute: Používá se k ověření požadovaných datových polí.
- RangeAttribute: Používá se k ověření, zda hodnota číselného pole je v rámci stanoveného rozsahu.
- StringLengthAttribute: Používá se k ověření, že délka řetězce cílového pole je v rámci stanoveného rozsahu.
- MaxLengthAttribute/MinLengthAttribute: Používá se k ověření, zda délka slovníku znaků/pole je menší/větší než specifikovaná horní/dolní hranice.
- RegularExpressionAttribute: Používá se k ověření, že formát řetězcového pole odpovídá specifikovanému regulárnímu výrazu.
- CompareAttribute: Používá se k ověření, zda je hodnota cílového pole konzistentní s hodnotou jiného pole, a může být použita k ověření konzistence zadání hesla dvakrát v scénáři registrace uživatele.
- CustomValidationAttribute: Specifikuje typ validace a validační metodu pro ověření cílového člena.
Samozřejmě můžeme také definovat pravidla pro validaci dědičností třídy ValidationAttribute a implementací odpovídající metody.
Podívejme se nejprve na renderování, chybová zpráva je vrácena rozhraním na pozadí, a to následovně:
Kód objektového modelu:
Kód filtru ModelStateFilter:
Kód IsAjaxRequest je následující:
Nakonec přidejte vlastní filtr do Startup souboru, kód je následující:
(Konec)
|