Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 16017|Απάντηση: 1

[.NET Πυρήνας] ASP.NET Εφαρμογή προσαρμοσμένων περιορισμών δρομολόγησης στο Core

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/5/2019 9:30:30 π.μ. | | |
Περιορισμοί δρομολόγησης

ASP.NET το Core, μπορείτε να μεταβιβάσετε μεταβλητές σε διευθύνσεις URL ορίζοντας πρότυπα δρομολόγησης και μπορείτε να παρέχετε προεπιλογές, προαιρετικά και περιορισμούς για μεταβλητές.

Ο περιορισμός χρησιμοποιείται με την προσθήκη του καθορισμένου ονόματος περιορισμού στη δρομολόγηση του χαρακτηριστικού, η οποία χρησιμοποιείται ως εξής:

Ορισμένοι περιορισμοί προβλέπονται ήδη εντός του πλαισίου, ως εξής:

Περιορισμοί
παράδειγμα
Παραδείγματα αγώνων
διευκρινίζω
Διεθνές
{id:int}
123456789, -123456789
Αντιστοιχίστε οποιονδήποτε ακέραιο αριθμό
bool
{ενεργό:bool}
σωστό, ΛΑΘΟΣ
Ταίριασμα true ή false (διάκριση πεζών-κεφαλαίων)
ημερομηνία/ώρα
{dob:ημερομηνία/ώρα}
2016-12-31, 2016-12-31 7:32 μ.μ.
Ταιριάζει με έγκυρες τιμές ημερομηνίας/ώρας (σε σταθερή τοποθεσία - δείτε προειδοποίηση)
δεκαδικός
{τιμή:δεκαδικό}
49.99, -1,000.01
Ταιριάζει με έγκυρες δεκαδικές τιμές (σε σταθερή τοποθεσία - βλ. προειδοποίηση)
Διπλό
{βάρος:διπλό}
1,234, -1.001,01ε8
Ταιριάζει με έγκυρες διπλές τιμές (σε σταθερή τοποθεσία - βλ. προειδοποίηση)
επιπλέουν
{βάρος:float}
1,234, -1.001,01ε8
Ταιριάζει με έγκυρες τιμές float (σε σταθερή τοποθεσία - βλ. προειδοποιήσεις)
GUID
{id:guid}
CD2C1638-1638-72D5-1638-DEADBEEF1638, {CD2C1638-1638-72D5-1638-DEADBEEF1638}
Ταιριάζει με έγκυρες τιμές GUID
μακρύς
{τικ:μακρύ}
123456789, -123456789
Ταιριάζει με έγκυρες μεγάλες τιμές
minlength(τιμή)
{όνομα χρήστη:minlength(4)}
Ρικ
Η συμβολοσειρά πρέπει να αποτελείται από τουλάχιστον 4 χαρακτήρες
maxlength(τιμή)
{όνομα αρχείου:maxlength(8)}
Ρίτσαρντ
Οι συμβολοσειρές δεν πρέπει να υπερβαίνουν τους 8 χαρακτήρες
μήκος(μήκος)
{όνομα αρχείου:μήκος(12)}
somefile.txt
Η συμβολοσειρά πρέπει να αποτελείται ακριβώς από 12 χαρακτήρες
Μήκος (ελάχιστο, μέγιστο)
{όνομα αρχείου:μήκος(8,16)}
somefile.txt
Η συμβολοσειρά πρέπει να αποτελείται από τουλάχιστον 8 χαρακτήρες και όχι περισσότερους από 16 χαρακτήρες
min(τιμή)
{ηλικία:min(18)}
19
Η ακέραια τιμή πρέπει να είναι τουλάχιστον 18
max(τιμή)
{ηλικία:max(120)}
91
Η ακέραια τιμή δεν πρέπει να υπερβαίνει το 120
εύρος (ελάχιστο, μέγιστο)
{ηλικία:εύρος(18,120)}
91
Η ακέραια τιμή πρέπει να είναι τουλάχιστον 18 και να μην υπερβαίνει το 120
άλφα
{όνομα:άλφα}
Ρικ
Η συμβολοσειρά πρέπει να αποτελείται από έναν ή περισσότερους αλφαβητικούς χαρακτήρες (a-z, με διάκριση πεζών-κεφαλαίων).
regex(έκφραση)
{ssn:regex(^\d{{3}}-\d{{2}}-\d{{4}}$)}
123-45-6789
Η συμβολοσειρά πρέπει να ταιριάζει με την κανονική έκφραση (δείτε συμβουλές για τον ορισμό κανονικών εκφράσεων)
απαιτούμενο
{όνομα:απαιτείται}
Ρικ
Χρησιμοποιείται για την επιβολή της παρουσίας μη παραμετρικών τιμών κατά τη δημιουργία URL


Οι ενσωματωμένοι περιορισμοί λειτουργούν για τις πιο συνηθισμένες περιπτώσεις χρήσης, αλλά μερικές φορές πρέπει να προσαρμόσουμε το εφέ που θέλουμε.
Προσαρμοσμένοι περιορισμοί δρομολόγησης

Ένας προσαρμοσμένος περιορισμός είναι η υλοποίηση της διεπαφής IRouteConstraint και στη συνέχεια η υπερφόρτωση της μεθόδου Match, η οποία έχει τέσσερις παραμέτρους.

Η πρώτη παράμετρος, httpContext, είναι το πλαίσιο του τρέχοντος αιτήματος

Η δεύτερη παράμετρος, διαδρομή, είναι η διαδρομή στην οποία ανήκει ο τρέχων περιορισμός

Η τρίτη παράμετρος, routeKey, είναι το όνομα της μεταβλητής που ελέγχεται αυτήν τη στιγμή, όπως το id στο παράδειγμα στην αρχή του άρθρου
Οι τιμές της τέταρτης παραμέτρου είναι η τιμή λεξικού που ταιριάζει με την τρέχουσα διεύθυνση URL, όπως η διαδρομή του παραδείγματος στην αρχή του άρθρου, εάν η διεύθυνση URL είναι users/1, τότε υπάρχει ένα λεξικό με κλειδί = id , τιμή = 1. Φυσικά, υπάρχουν και τιμές για άλλες μεταβλητές, όπως ελεγκτής, ενέργεια κ.λπ.

Η πέμπτη παράμετρος, routeDirection, είναι μια απαριθμημένη τιμή που αντιπροσωπεύει εάν η διεύθυνση URL ζητείται από τον ιστό ή δημιουργείται από μια μέθοδο όπως η Url.Action.

Για παράδειγμα, θέλουμε να ορίσουμε έναν περιορισμό που καθορίζει ότι οι παράμετροι που διαβιβάζονται από τη δρομολόγηση πρέπει να είναι η καθορισμένη τιμή απαρίθμησης.

Ας ορίσουμε πρώτα μια απαρίθμηση:


Στη συνέχεια, ορίστε τους περιορισμούς:

Προσθέστε προσαρμοσμένους περιορισμούς στη μέθοδο ConfigureServices στο Startup.cs:
Χρήση περιορισμών στις διαδρομές:

(Το WebApplicationTest είναι ο τρέχων χώρος ονομάτων)


{id:int:min(2)} Η διαδρομή πρέπει να χρησιμοποιεί min(2), διαφορετικά θα υπάρξει σύγκρουση για id = 0 ή id = 1.

Εκτελέστε το πρόγραμμα και αντιστοιχίστε τους προσαρμοσμένους περιορισμούς μας όταν οι διαδρομές είναι api/test/0, api/test/1, api/test/true και api/test/false.

Εάν η δρομολόγηση είναι api/test/{integer μεγαλύτερη από 2}, αντιστοιχίστε τη δεύτερη δρομολόγηση.

Άλλες περιπτώσεις ταιριάζουν με την τρίτη διαδρομή.

συμπέρασμα

Οι περιορισμοί δρομολόγησης είναι ένα πολύ χρήσιμο χαρακτηριστικό σε ορισμένα σενάρια, το οποίο μπορεί να μειώσει τις παραμέτρους ελέγχου στον ελεγκτή και η λειτουργία της μερικής επικύρωσης παραμέτρων μπορεί να υλοποιηθεί χρησιμοποιώντας δηλωτικό χαρακτηριστικό και ορισμένοι διπλοί έλεγχοι μπορούν να εξαχθούν σε περιορισμούς για δημόσια χρήση.

Ο κατασκευαστής του περιορισμού μπορεί να εγχυθεί, επομένως μπορεί να είναι πολύ επεκτάσιμος και κάποια επαλήθευση παραμέτρων μπορεί να γίνει με ερώτημα στη βάση δεδομένων.

Ο επίσημος ιστότοπος αναφέρει μόνο εν συντομία τους περιορισμούς δρομολόγησης και αυτό το άρθρο παρέχει συγκεκριμένα παραδείγματα χρήσης περιορισμών δρομολόγησης.





Προηγούμενος:Zero Foundation C# (Πλήρης έγχρωμη έκδοση) Τεχνολογία Tomorrow
Επόμενος:ASP.NET Core – Razor View Import Περιγραφή χρήσης
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 6/5/2019 9:32:15 π.μ. |
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com