See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 16527|Vastuse: 1

[.NET tuum] ASP.NET Kohandatud marsruutimispiirangute rakendamine Core'is

[Kopeeri link]
Postitatud 06.05.2019 09:30:30 | | |
Marsruutimispiirangud

ASP.NET Core'is saad URL-idele muutujaid edastada, määratledes marsruutimismallid, ning saad määrata vaikimisi, valikuvõimalusi ja piiranguid muutujatele.

Piirangut kasutatakse, lisades määratud piirangu nime atribuudi marsruudile, mida kasutatakse järgmiselt:

Mõned piirangud on raamistikus juba olemas, nagu järgmised:

Piirangud
näide
Näited matšidest
Illustreerida
int
{id:int}
123456789, -123456789
Sobita ükskõik milline täisarv
bool
{active:bool}
tõene, VÄÄR
Sobita tõene või vale (käänutundlik)
Kuupäev
{dob:datetime}
2016-12-31, 2016-12-31 19:32
Vastab kehtivatele DateTime väärtustele (fikseeritud lokaalis – vt hoiatust)
kümnendkomaa
{price:decimal}
49.99, -1,000.01
Vastab kehtivatele kümnendkohtadele (fikseeritud lokaalsus – vt hoiatus)
Kahekordne
{weight:double}
1.234, -1,001.01e8
Vastab kehtivatele topeltväärtustele (fikseeritud lokaalsus – vt hoiatus)
float
{weight:float}
1.234, -1,001.01e8
Vastab kehtivatele float-väärtustele (fikseeritud lokaalis – vt hoiatusi)
Guid
{id:guid}
CD2C1638-1638-72D5-1638-DEADBEEF1638, {CD2C1638-1638-72D5-1638-DEADBEEF1638}
Sobivad kehtivad GUID-väärtused
pikk
{tiks:long}
123456789, -123456789
Sobivad kehtivad pikad väärtused
minlength(väärtus)
{kasutajanimi:minlength(4)}
Rick
String peab olema vähemalt 4 tähemärki
maxlength(väärtus)
{failinimi:maxlength(8)}
Richard
Stringid ei tohi ületada 8 märki
pikkus(pikkus)
{filename:length(12)}
somefile.txt
String peab olema täpselt 12 märki
pikkus (min,max)
{failinimi:pikkus(8,16)}
somefile.txt
String peab olema vähemalt 8 tähemärki ja mitte rohkem kui 16 märki
min(väärtus)
{age:min(18)}
19
Täisarvuline väärtus peab olema vähemalt 18
max(väärtus)
{age:max(120)}
91
Täisarvuline väärtus ei tohi ületada 120
ulatus (min,max)
{age:range(18,120)}
91
Täisarv peab olema vähemalt 18 ja mitte ületama 120
Alpha
{name:alpha}
Rick
String peab koosnema ühest või mitmest tähestikulisest märgist (a-z, tähe-tundlik).
regex (väljend)
{ssn:regex(^\d{{3}}-\d{{2}}-\d{{4}}$)}
123-45-6789
String peab vastama regulaaravaldisele (vt näpunäiteid regulaaravaldiste määratlemiseks)
Nõutav
{nimi:vajalik}
Rick
Kasutatakse mitteparameetriliste väärtuste olemasolu tagamiseks URL-i genereerimisel


Sisseehitatud piirangud toimivad enamiku tavapäraste kasutusjuhtude puhul, kuid mõnikord tuleb siiski soovitud efekti kohandada.
Kohandatud marsruutimise piirangud

Kohandatud piirang on IRouteConstraint liidese rakendamine ja seejärel Match-meetodi ülekoormamine, millel on neli parameetrit.

Esimene parameeter, httpContext, on praeguse päringu kontekst

Teine parameeter, marsruut, on marsruut, millele praegune piirang kuulub

Kolmas parameeter, routeKey, on hetkel kontrollitud muutuja nimi, näiteks id artikli alguses toodud näites
Neljas parameetri väärtus on sõnastiku väärtus, millega praegune URL vastab, näiteks näite marsruut artikli alguses; kui URL on users/1, siis on olemas sõnastik, mille võti = id , väärtus = 1. Loomulikult on olemas ka väärtused teiste muutujate jaoks, nagu kontroller, tegevus jne.

Viies parameeter, routeDirection, on loetletud väärtus, mis näitab, kas URL-i taotleb veebis või genereerib meetod nagu Url.Action.

Näiteks soovime defineerida piirangu, mis määrab, et marsruudi kaudu läbitud parameetrid peavad olema määratud loendusväärtus.

Defineerime kõigepealt enum'i:


Seejärel defineerime piirangud:

Lisa ConfigureServices meetodile kohandatud piirangud Startup.cs:
Marsruutide piirangute kasutamine:

(WebApplicationTest on praegune nimeruum)


{id:int:min(2)} marsruut peab kasutama min(2), vastasel juhul tekib konflikt id = 0 või id = 1 vahel.

Käivita programm ja vasta meie kohandatud piirangutele, kui marsruudid on api/test/0, api/test/1, api/test/true ja api/test/väär.

Kui marsruut on api/test/{täisarv suurem kui 2}, sobitage teine marsruut.

Teised juhtumid sobivad kolmandale teele.

Järeldus

Marsruutimispiirangud on mõnes olukorras väga kasulik funktsioon, mis võib vähendada kontrollparameetreid kontrolleris, ning osalise parameetrite valideerimise funktsiooni saab rakendada deklaratiivse attruibute'i abil ning mõningaid dõltsitud kontrolle saab avalikuks kasutamiseks piirangutesse eraldada.

Piirangu konstruktorit saab süstida, nii et see on väga laiendatav, ning mõningaid parameetrite verifitseerimist saab teha andmebaasi päringute kaudu.

Ametlik veebileht mainib marsruutimispiiranguid vaid lühidalt ning see artikkel toob konkreetseid näiteid marsruutimispiirangute kasutamisest.





Eelmine:Zero Foundation C# (täisvärviline versioon) Tomorrow Technology
Järgmine:ASP.NET Core – Razor View impordi kasutuse kirjeldus
 Üürileandja| Postitatud 06.05.2019 09:32:15 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com