Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 16017|Atbildi: 1

[.NET kodols] ASP.NET Pielāgotu maršrutēšanas ierobežojumu ieviešana Core

[Kopēt saiti]
Publicēts 06.05.2019 09:30:30 | | |
Maršrutēšanas ierobežojumi

ASP.NET Core, varat nodot mainīgos URL, definējot maršrutēšanas veidnes, un varat nodrošināt noklusējuma, izvēles un ierobežojumus mainīgajiem.

Ierobežojums tiek izmantots, pievienojot norādīto ierobežojuma nosaukumu atribūta maršrutam, kas tiek izmantots šādi:

Daži ierobežojumi jau ir paredzēti sistēmā, šādi:

Ierobežojumi
piemērs
Sērkociņu piemēri
Ilustrētu
int
{id:int}
123456789, -123456789
Atbilstība jebkuram veselam skaitlim
Būls
{aktīvs:bool}
patiess, NEPATIESS
Atbilstība true vai false (reģistrjutīga)
Datums un laiks
{dzimšanas datums:datums}
2016-12-31, 2016-12-31 7:32pm
Atbilst derīgām DateTime vērtībām (fiksētā apvidū - skatiet brīdinājumu)
decimāldaļa
{cena:decimāldaļa}
49.99, -1,000.01
Atbilst derīgām decimāldaļām (fiksētā vietā - skatīt brīdinājumu)
divvietīgs
{svars:dubultā}
1,234, -1,001,01e8
Atbilst derīgām dubultām vērtībām (fiksētā vietā - skatīt brīdinājumu)
pludiņš
{svars:pludiņš}
1,234, -1,001,01e8
Atbilst derīgām pludiņa vērtībām (fiksētā vietā - skatīt brīdinājumus)
GUID
{id:guid}
CD2C1638-1638-72D5-1638-DEADBEEF1638, {CD2C1638-1638-72D5-1638-DEADBEEF1638}
Atbilst derīgām GUID vērtībām
garš
{ērces:garš}
123456789, -123456789
Atbilst derīgām garajām vērtībām
minlength(vērtība)
{lietotājvārds:minlength(4)}
Riks
Virknei jābūt vismaz 4 rakstzīmēm
maxlength(vērtība)
{faila nosaukums:maxlength(8)}
Ričards
Virknes nedrīkst pārsniegt 8 rakstzīmes
garums (garums)
{faila nosaukums:garums(12)}
somefile.txt
Virknei jābūt precīzi 12 rakstzīmēm
garums (min, max)
{faila nosaukums:garums(8,16)}
somefile.txt
Virknei jābūt vismaz 8 rakstzīmēm un ne vairāk kā 16 rakstzīmēm
min(vērtība)
{vecums:min(18)}
19
Veselam skaitlim jābūt vismaz 18
max(vērtība)
{Vecums:maks.(120)}
91
Vesela skaitļa vērtība nedrīkst pārsniegt 120
diapazons (min, maks.)
{vecums:diapazons(18,120)}
91
Veselam skaitlim jābūt vismaz 18 un nedrīkst pārsniegt 120
alfa
{vārds:alfa}
Riks
Virknei jāsastāv no vienas vai vairākām alfabēta rakstzīmēm (a-z, reģistrjutīga).
regex(izteiksme)
{ssn:regex(^\d{{3}}-\d{{2}}-\d{{4}}$)}
123-45-6789
Virknei jāatbilst regulārajai izteiksmei (skatiet padomus par regulāro izteiksmju definēšanu)
Nepieciešams
{vārds:obligāts}
Riks
Izmanto, lai URL ģenerēšanas laikā ieviestu neparametrisku vērtību klātbūtni


Iebūvētie ierobežojumi darbojas visbiežāk sastopamajos lietošanas gadījumos, taču dažreiz mums joprojām ir jāpielāgo vēlamais efekts.
Pielāgoti maršrutēšanas ierobežojumi

Pielāgots ierobežojums ir ieviest IRouteConstraint interfeisu un pēc tam pārslogot Match metodi, kurai ir četri parametri.

Pirmais parametrs httpContext ir pašreizējā pieprasījuma konteksts

Otrais parametrs maršruts ir maršruts, kuram pieder pašreizējais ierobežojums

Trešais parametrs, routeKey, ir pašlaik pārbaudītā mainīgā nosaukums, piemēram, id piemērā raksta sākumā
Ceturtā parametra vērtība ir vārdnīcas vērtība, kurai atbilst pašreizējais URL, piemēram, piemēra maršruts raksta sākumā, ja URL ir lietotāji/1, tad ir vārdnīca ar atslēgu = id , vērtība = 1. Protams, ir arī citu mainīgo lielumu vērtības, piemēram, kontrolieris, darbība utt.

Piektais parametrs routeDirection ir uzskaitīta vērtība, kas norāda, vai URL pieprasa tīmeklis vai ģenerē tāda metode kā Url.Action.

Piemēram, mēs vēlamies definēt ierobežojumu, kas nosaka, ka maršruta nodotajiem parametriem jābūt norādītajai uzskaitījuma vērtībai.

Vispirms definēsim uzskaitījumu:


Pēc tam definējiet ierobežojumus:

Pievienojiet pielāgotus ierobežojumus metodei ConfigureServices pakalpojumā Startup.cs:
Maršrutu ierobežojumu izmantošana:

(WebApplicationTest ir pašreizējā nosaukumtelpa)


{id:int:min(2)} maršrutam jāizmanto min(2), pretējā gadījumā radīsies konflikts id = 0 vai id = 1.

Palaidiet programmu un izpildiet mūsu pielāgotos ierobežojumus, ja maršruti ir api/test/0, api/test/1, api/test/true un api/test/false.

Ja maršruts ir api/test/{vesels skaitlis lielāks par 2}, saskaņojiet otro maršrutu.

Citi gadījumi atbilst trešajam maršrutam.

Secinājums

Maršrutēšanas ierobežojumi dažos scenārijos ir ļoti noderīga funkcija, kas var samazināt kontroliera pārbaudes parametrus, un daļējas parametru validācijas funkciju var īstenot, izmantojot deklaratīvu attruibute, un dažas dublikātu pārbaudes var iegūt ierobežojumos publiskai lietošanai.

Ierobežojuma konstruktoru var ievadīt, tāpēc tas var būt ļoti paplašināms, un dažas parametru pārbaudes var veikt, vaicājot datu bāzē.

Oficiālajā tīmekļa vietnē tikai īsi minēti maršrutēšanas ierobežojumi, un šajā rakstā ir sniegti konkrēti maršrutēšanas ierobežojumu izmantošanas piemēri.





Iepriekšējo:Zero Foundation C# (pilnkrāsu versija) rītdienas tehnoloģija
Nākamo:ASP.NET Core - Razor View importa lietošanas apraksts
 Saimnieks| Publicēts 06.05.2019 09:32:15 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com