Η κατάσταση του μοντέλου και οι σχολιασμοί δεδομένων στη C# μας παρέχουν έναν βολικό τρόπο για να ζητήσουμε επαλήθευση δεδομένων. Η επαλήθευση μοντέλου ModelState σημαίνει απλώς να βοηθήσετε το backend να εξοικονομήσει πολλές εργασίες επαλήθευσης παραμέτρων, απλώς προσθέστε αντίστοιχες δυνατότητες στο μοντέλο και, τέλος, καλέστε το ModelState.IsValid στον ελεγκτή για να λάβετε τα αποτελέσματα επαλήθευσης. Χωρίς το ModelState, η επικύρωση παραμέτρων backend μπορεί να χρειαστεί να γράψει πολλές κρίσεις if.
Απαιτήσεις: Κρίνουμε εάν οι παράμετροι του POST έχουν περάσει την επαλήθευση μοντέλου στο φίλτρο, εάν δεν περάσουν την επαλήθευση, επιστρέφουν απευθείας ένα ενοποιημένο μήνυμα σφάλματος json, μόνο αφού περάσει η επαλήθευση και, στη συνέχεια, εισαγάγετε τη μέθοδο ελεγκτή, το πλεονέκτημα αυτού είναι,Δεν χρειάζεται να κρίνουμε κάθε ελεγκτή και να κάνουμε επαναλαμβανόμενες εργασίες。
Ελέγξτε την επικύρωση του μοντέλου ModelState
Φίλτρα ελέγχου
Ελέγξτε τις γνώσεις σας για το ASP.NET Core
Το σύστημα προκαθορίζει το ValidationAttribute Ένα σύνολο λειτουργιών επικύρωσης που κληρονομούνται από το ValidationAttribute ορίζονται στον χώρο ονομάτων System.ComponentModel.DataAnnotations.
- RequiredAttribute: Χρησιμοποιείται για την επικύρωση των απαιτούμενων πεδίων δεδομένων.
- RangeAttribute: Χρησιμοποιείται για την επαλήθευση ότι η τιμή ενός αριθμητικού πεδίου βρίσκεται εντός του καθορισμένου εύρους.
- StringLengthAttribute: Χρησιμοποιείται για την επαλήθευση ότι το μήκος συμβολοσειράς του πεδίου προορισμού είναι εντός του καθορισμένου εύρους.
- MaxLengthAttribute/MinLengthAttribute: Χρησιμοποιείται για να επαληθεύσει εάν το μήκος του λεξικού χαρακτήρων/πίνακα είναι μικρότερο/μεγαλύτερο από το καθορισμένο ανώτερο/κατώτερο όριο.
- RegularExpressionAttribute: Χρησιμοποιείται για την επαλήθευση ότι η μορφή του πεδίου συμβολοσειράς ταιριάζει με την καθορισμένη τυπική έκφραση.
- CompareAttribute: Χρησιμοποιείται για να επαληθεύσει εάν η τιμή του πεδίου προορισμού είναι συνεπής με την τιμή ενός άλλου πεδίου και μπορεί να χρησιμοποιηθεί για να επιβεβαιώσει τη συνέπεια της εισαγωγής του κωδικού πρόσβασης δύο φορές σε ένα σενάριο εγγραφής χρήστη.
- CustomValidationAttribute: Καθορίζει έναν τύπο επικύρωσης και μια μέθοδο επικύρωσης για την επικύρωση του μέλους προορισμού.
Φυσικά, μπορούμε επίσης να ορίσουμε τους κανόνες επικύρωσης κληρονομώντας την κλάση ValidationAttribute και εφαρμόζοντας την αντίστοιχη μέθοδο.
Ας ρίξουμε μια ματιά στις αποδόσεις πρώτα, το μήνυμα σφάλματος επιστρέφεται από τη διεπαφή φόντου, ως εξής:
Κωδικός μοντέλου αντικειμένου:
Κωδικός φίλτρου ModelStateFilter:
Ο κωδικός IsAjaxRequest έχει ως εξής:
Τέλος, προσθέστε ένα προσαρμοσμένο φίλτρο στο αρχείο εκκίνησης, ο κώδικας έχει ως εξής:
(Τέλος)
|