Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 16017|Odgovoriti: 1

[.NET Core] ASP.NET Implementacija omejitev prilagojenega usmerjanja v Core

[Kopiraj povezavo]
Objavljeno na 6. 05. 2019 09:30:30 | | |
Omejitve usmerjanja

ASP.NET Core lahko spremenljivke posredujete na URL-jih z definiranjem predlog usmerjanja, prav tako pa lahko zagotovite privzete, opcijske in omejitve za spremenljivke.

Omejitev se uporabi tako, da se na pot atributa doda določeno ime omejitve, ki se uporablja na naslednji način:

Nekatere omejitve so že navedene znotraj okvira, in sicer:

Omejitve
primer
Primeri tekem
Ponazoritev
int
{id:int}
123456789, -123456789
Ujemaj poljubno celo število
bool
{active:bool}
resnično, NAPAČNO
Ujemaj z resnico ali napačno (odvisno od velikih in velikih črk)
Datetime
{dob:datetime}
2016-12-31, 2016-12-31 19:32
Ujema se z veljavno vrednostjo DateTime (v fiksni lokaciji - glej opozorilo)
decimalno
{cena:decimal}
49.99, -1,000.01
Ustreza veljavnim decimalnim vrednostim (v fiksni lokaciji - glej opozorilo)
dvojni
{teža:dvojno}
1,234, -1,001,01e8
Ujema veljavne dvojne vrednosti (v fiksni lokaciji - glej opozorilo)
Plovec
{teža:float}
1,234, -1,001,01e8
Ustreza veljavnim vrednostim plavajočih vrednosti (v fiksni lokaciji - glej opozorila)
GUID
{id:guid}
CD2C1638-1638-72D5-1638-DEADBEEF1638, {CD2C1638-1638-72D5-1638-DEADBEEF1638}
Ujema se z veljavnomi vrednostmi GUID
dolgo
{ticks:long}
123456789, -123456789
Ujema se z veljavnomi dolgimi vrednostmi
minlength(vrednost)
{uporabniško ime:minlength(4)}
Rick
Niz mora imeti vsaj 4 znake
maxlength(vrednost)
{filename:maxlength(8)}
Richard
Nizi ne smejo preseči 8 znakov
dolžina (dolžina)
{filename:length(12)}
somefile.txt
Niz mora imeti natanko 12 znakov
dolžina (min,max)
{filename:length(8,16)}
somefile.txt
Niz mora imeti vsaj 8 znakov in največ 16 znakov
min(vrednost)
{starost:min(18)}
19
Celoštevilska vrednost mora biti vsaj 18
max(vrednost)
{starost:max(120)}
91
Vrednost celega števila ne sme presegati 120
Doseg (minimum,maksimum)
{starost:razpon(18,120)}
91
Vrednost celega števila mora biti vsaj 18 in ne sme presegati 120
alfa
{ime:alfa}
Rick
Niz mora biti sestavljen iz enega ali več abecednih znakov (a-z, občutljivo na velike črke).
regex(izraz)
{ssn:regex(^\d{{3}}-\d{{2}}-\d{{4}}$)}
123-45-6789
Niz mora ustrezati regularnemu izrazu (glej nasvete o definiranju regularnih izrazov)
Zahteva
{name:required}
Rick
Uporablja se za uveljavljanje prisotnosti neparametričnih vrednosti med generiranjem URL-jev


Vgrajene omejitve delujejo za večino običajnih primerov uporabe, a včasih moramo vseeno prilagoditi želeni učinek.
Omejitve prilagojenega usmerjanja

Prilagojena omejitev je implementacija vmesnika IRouteConstraint in nato preobremenitev metode Match, ki ima štiri parametre.

Prvi parameter, httpContext, je kontekst trenutne zahteve

Drugi parameter, pot, je pot, kateri pripada trenutna omejitev

Tretji parameter, routeKey, je ime trenutno preverjene spremenljivke, na primer id v primeru na začetku članka
Četrta vrednost parametra je slovarska vrednost, ki jo trenutni URL ujema, na primer pot primera na začetku članka; če je URL users/1, potem obstaja slovar s ključem = id , vrednostjo = 1. Seveda obstajajo tudi vrednosti za druge spremenljivke, kot so krmilnik, akcija itd.

Peti parameter, routeDirection, je enumerirana vrednost, ki predstavlja, ali URL zahteva splet ali ga generira metoda, kot je Url.Action.

Na primer, želimo definirati omejitev, ki določa, da morajo biti parametri, ki jih pot prenese, določena enumeracijska vrednost.

Najprej definirajmo enum:


Nato definiramo omejitve:

Dodajte prilagojene omejitve metodi ConfigureServices v Startup.cs:
Uporaba omejitev na poti:

(WebApplicationTest je trenutni imenski prostor)


{id:int:min(2)} Pot mora uporabiti min(2), sicer bo prišlo do konflikta za id = 0 ali id = 1.

Zaženite program in uskladite naše prilagojene omejitve, ko so poti api/test/0, api/test/1, api/test/true in api/test/false.

Če je pot api/test/{celo število večje od 2}, ujemamo drugo pot.

Drugi primeri ustrezajo tretji poti.

Sklep

Usmerjevalne omejitve so v nekaterih primerih zelo uporabna funkcija, saj lahko zmanjšajo kontrolne parametre v krmilniku, funkcija delne validacije parametrov pa se lahko implementira z deklarativnim potrdilom, nekatere podvojene kontrole pa je mogoče izvleči v omejitve za javno uporabo.

Konstruktor omejitve je mogoče vbrizgati, zato je lahko zelo razširljiv, nekaj preverjanja parametrov pa je mogoče opraviti z poizvedbami v bazi podatkov.

Uradna spletna stran omenja usmerjevalne omejitve le na kratko, ta članek pa ponuja konkretne primere uporabe usmerjevalnih omejitev.





Prejšnji:Zero Foundation C# (polnobarvna različica) Tehnologija jutri
Naslednji:ASP.NET Core – Razor View Import Usage Description
 Najemodajalec| Objavljeno na 6. 05. 2019 09:32:15 |
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com