Modelio būsenos ir duomenų anotacijos C# suteikia mums patogų būdą prašyti duomenų patvirtinimo. "ModelState" modelio patvirtinimas tiesiog reiškia padėti vidinei sistemai sutaupyti daug parametrų tikrinimo darbo, tiesiog pridėkite atitinkamas modelio funkcijas ir galiausiai paskambinkite ModelState.IsValid valdiklyje, kad gautumėte patikrinimo rezultatus. Be "ModelState" mūsų galinių parametrų patvirtinimui gali tekti parašyti daug if sprendimų.
Reikalavimai: Mes sprendžiame, ar POST parametrai išlaikė modelio patikrinimą filtre, jei jie neišlaiko patikrinimo, tiesiogiai grąžinkite vieningą json klaidos pranešimą, tik po to, kai patikrinimas praeina, ir tada įveskite valdiklio metodą, to pranašumas yra,Mums nereikia teisti kiekvieno valdiklio ir atlikti pasikartojančių darbų。
Modelio "ModelState" tikrinimo peržiūra
Peržiūrėti filtrus
Peržiūrėkite savo žinias apie "ASP.NET Core"
Sistema iš anksto apibrėžia ValidationAttribute Tikrinimo funkcijų rinkinys, paveldėtas iš ValidationAttribute, apibrėžiamas vardų srityje System.ComponentModel.DataAnnotations.
- RequiredAttribute: naudojamas būtiniems duomenų laukams tikrinti.
- RangeAttribute: naudojamas patikrinti, ar skaitinio lauko reikšmė patenka į nurodytą diapazoną.
- StringLengthAttribute: naudojamas patikrinti, ar paskirties lauko eilutės ilgis patenka į nurodytą diapazoną.
- MaxLengthAttribute/MinLengthAttribute: naudojamas patikrinti, ar simbolių / masyvo žodyno ilgis yra mažesnis / didesnis už nurodytą viršutinę / apatinę ribą.
- RegularExpressionAttribute: naudojamas patikrinti, ar eilutės lauko formatas atitinka nurodytą reguliariąją išraišką.
- CompareAttribute: naudojamas patikrinti, ar paskirties lauko reikšmė atitinka kito lauko reikšmę, ir gali būti naudojamas patvirtinti slaptažodžio įvedimo nuoseklumą du kartus vartotojo registracijos scenarijuje.
- CustomValidationAttribute: nurodo tikrinimo tipą ir tikrinimo metodą, skirtą tiksliniam nariui tikrinti.
Žinoma, mes taip pat galime apibrėžti patvirtinimo taisykles paveldėdami ValidationAttribute klasę ir įgyvendindami atitinkamą metodą.
Pirmiausia pažvelkime į atvaizdus, klaidos pranešimą pateikia fono sąsaja taip:
Objekto modelio kodas:
ModelStateFilter filtro kodas:
IsAjaxRequest kodas yra toks:
Galiausiai pridėkite pasirinktinį filtrą prie paleisties failo, kodas yra toks:
(Pabaiga)
|