Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 16017|Atsakyti: 1

[.NET branduolys] ASP.NET Pasirinktinių maršruto parinkimo apribojimų įgyvendinimas "Core"

[Kopijuoti nuorodą]
Paskelbta 2019-05-06 09:30:30 | | |
Maršruto parinkimo apribojimai

ASP.NET "Core" galite perduoti kintamuosius URL apibrėždami maršruto parinkimo šablonus ir pateikti numatytuosius, pasirenkamus ir kintamųjų apribojimus.

Apribojimas naudojamas pridedant nurodytą apribojimo pavadinimą į atributo maršrutą, kuris naudojamas taip:

Kai kurie apribojimai jau numatyti sistemoje:

Apribojimai
pavyzdys
Rungtynių pavyzdžiai
Iliustruoti
int
{id:int}
123456789, -123456789
Atitikti bet kurį sveikąjį skaičių
bool
{aktyvus:bool}
true, FALSE
Atitikti teisingą arba klaidingą (skiriamos didžiosios ir mažosios raidės)
data ir laikas
{dob:datetime}
2016-12-31, 2016-12-31 19:32
Atitinka galiojančias DateTime reikšmes (fiksuotoje vietoje - žr. įspėjimą)
dešimtainis
{kaina:dešimtainė}
49.99, -1,000.01
Atitinka galiojančias dešimtaines reikšmes (fiksuotoje vietoje - žr. įspėjimą)
dvigubas
{svoris:dvigubas}
1,234, -1,001,01e8
Atitinka galiojančias dvigubas reikšmes (fiksuotoje vietoje - žr. įspėjimą)
plūdė
{svoris:plūduriuojantis}
1,234, -1,001,01e8
Atitinka galiojančias plūduriuojančias reikšmes (fiksuotoje vietoje - žr. įspėjimus)
GUID
{id:guid}
CD2C1638-1638-72D5-1638-DEADBEEF1638, {CD2C1638-1638-72D5-1638-DEADBEEF1638}
Atitinka galiojančias GUID reikšmes
ilgas
{erkės:ilgas}
123456789, -123456789
Atitinka galiojančias ilgąsias reikšmes
minlength(reikšmė)
{vartotojo vardas:minlength(4)}
Rikas
Eilutę turi sudaryti ne mažiau kaip 4 simboliai
maxlength(reikšmė)
{failo pavadinimas:maxlength(8)}
Ričardas
Eilutės neturi viršyti 8 simbolių
ilgis (ilgis)
{failo pavadinimas:ilgis(12)}
somefile.txt
Eilutė turi būti lygiai 12 simbolių
Ilgis (min., maks.)
{failo pavadinimas:ilgis(8,16)}
somefile.txt
Eilutę turi sudaryti ne mažiau kaip 8 simboliai ir ne daugiau kaip 16 simbolių
min(reikšmė)
{amžius:min(18)}
19
Sveikojo skaičiaus reikšmė turi būti ne mažesnė kaip 18
max(reikšmė)
{amžius:maks.(120)}
91
Sveikojo skaičiaus reikšmė neturi viršyti 120
diapazonas (min., maks.)
{amžius:diapazonas(18,120)}
91
Sveikasis skaičius turi būti ne mažesnis kaip 18 ir ne didesnis kaip 120
alfa
{vardas:alfa}
Rikas
Eilutę turi sudaryti vienas ar keli abėcėlės simboliai (a-z, skiriamos didžiosios ir mažosios raidės).
regex(išraiška)
{ssn:regex(^\d{{3}}-\d{{2}}-\d{{4}}$)}
123-45-6789
Eilutė turi atitikti reguliariąją išraišką (žr. patarimus, kaip apibrėžti reguliariąsias išraiškas)
reikalingas
{vardas:būtina}
Rikas
Naudojamas neparametrinių reikšmių buvimui generuojant URL


Integruoti apribojimai tinka dažniausiai pasitaikantiems naudojimo atvejams, tačiau kartais vis tiek turime pritaikyti norimą efektą.
Pasirinktiniai maršruto parinkimo apribojimai

Pasirinktinis apribojimas yra įdiegti IRouteConstraint sąsają ir tada perkrauti Match metodą, kuris turi keturis parametrus.

Pirmasis parametras httpContext yra dabartinės užklausos kontekstas

Antrasis parametras maršrutas yra maršrutas, kuriam priklauso dabartinis apribojimas

Trečiasis parametras, routeKey, yra šiuo metu tikrinamo kintamojo pavadinimas, pvz., id pavyzdyje straipsnio pradžioje
Ketvirtoji parametro reikšmė yra žodyno reikšmė, kurią atitinka dabartinis URL, pvz., pavyzdžio maršrutas straipsnio pradžioje, jei URL yra vartotojai/1, tada yra žodynas su raktu = id , reikšmė = 1. Žinoma, yra ir kitų kintamųjų, tokių kaip valdiklis, veiksmas ir kt., reikšmių.

Penktasis parametras routeDirection yra išvardinta reikšmė, nurodanti, ar URL užklausą pateikia žiniatinklis, ar sugeneruoja metodas, pvz., Url.Action.

Pavyzdžiui, norime apibrėžti apribojimą, nurodantį, kad maršruto perduodami parametrai turi būti nurodyta išvardijimo vertė.

Pirmiausia apibrėžkime išvardijimą:


Tada apibrėžkite apribojimus:

Įtraukite pasirinktinius apribojimus į ConfigureServices metodą Startup.cs:
Maršrutų apribojimų naudojimas:

(WebApplicationTest yra dabartinė vardų sritis)


{id:int:min(2)} maršrutas turi naudoti min(2), kitaip kils konfliktas dėl id = 0 arba id = 1.

Paleiskite programą ir atitikti mūsų pasirinktinius apribojimus, kai maršrutai yra api/test/0, api/test/1, api/test/true ir api/test/false.

Jei maršrutas yra api/test/{sveikasis skaičius didesnis nei 2}, suderinkite antrąjį maršrutą.

Kiti atvejai atitinka trečiąjį kelią.

Išvada

Maršruto parinkimo apribojimai yra labai naudinga funkcija kai kuriuose scenarijuose, kurie gali sumažinti kontrolės parametrus valdiklyje, o dalinio parametrų patvirtinimo funkcija gali būti įgyvendinta naudojant deklaratyvų attruibute, o kai kurie pasikartojantys patikrinimai gali būti išgauti į apribojimus viešam naudojimui.

Apribojimo konstruktorius gali būti įterptas, todėl jis gali būti labai išplečiamas, o kai kuriuos parametrus galima patikrinti užklausiant duomenų bazę.

Oficialioje svetainėje tik trumpai paminėti maršruto parinkimo apribojimai, o šiame straipsnyje pateikiami konkretūs maršruto parinkimo apribojimų naudojimo pavyzdžiai.





Ankstesnis:"Zero Foundation C#" (spalvota versija) rytojaus technologija
Kitą:ASP.NET Core – skustuvas Peržiūrėti Importuoti Naudojimo aprašymas
 Savininkas| Paskelbta 2019-05-06 09:32:15 |
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com