Programiranje

Kako preusmeriti zahtevo v ASP.NET Core MVC

ASP.NET Core je medplatformni, odprtokodni, vitki, hitri in modularni okvir za izdelavo visoko zmogljivih spletnih aplikacij. Aplikacije ASP.NET Core MVC omogočajo preusmeritev zahteve na določen URL na več različnih načinov. Ta članek govori o tem, kako lahko to dosežemo s primeri kod, kjer je to primerno.

Če želite delati s primeri kod v tem članku, morate imeti v sistemu nameščen Visual Studio 2019. Če kopije še nimate, lahko Visual Studio 2019 prenesete tukaj.

[Tudi o: Kako preoblikovati božje predmete v C #]

Ustvarite projekt ASP.NET Core MVC v Visual Studio

Najprej ustvarimo projekt ASP.NET Core v Visual Studio 2019. Če predpostavimo, da je Visual Studio 2019 nameščen v vašem sistemu, sledite spodnjim korakom, da ustvarite nov projekt ASP.NET Core v Visual Studio.

  1. Zaženite Visual Studio IDE.
  2. Kliknite »Ustvari nov projekt«.
  3. V oknu »Ustvari nov projekt« na prikazanih seznamih predlog izberite »Spletna aplikacija ASP.NET Core«.
  4. Kliknite Naprej.
  5. V oknu »Konfiguriranje novega projekta« določite ime in mesto novega projekta.
  6. Izbirno potrdite polje »Rešitev in projekt postavite v isti imenik«, odvisno od vaših želja.
  7. Kliknite Ustvari.
  8. V naslednjem oknu »Ustvari novo spletno aplikacijo ASP.NET Core« izberite .NET Core kot izvajalno okolje in ASP.NET Core 3.1 (ali novejšo) s spustnega seznama na vrhu.
  9. Kot predlogo projekta izberite »Spletna aplikacija (Model-View-Controller)«, da ustvarite novo aplikacijo ASP.NET Core MVC.
  10. Prepričajte se, da sta potrditveni polji »Omogoči podporo za Docker« in »Konfiguriranje za HTTPS« odstranjeni, saj tukaj ne bomo uporabljali teh funkcij.
  11. Prepričajte se, da je preverjanje pristnosti nastavljeno na »Brez preverjanja pristnosti«, saj tudi preverjanja pristnosti ne bomo uporabljali.
  12. Kliknite Ustvari.

Po teh korakih boste ustvarili nov projekt ASP.NET Core MVC v Visual Studio 2019. Ta projekt bomo uporabili v spodnjih odsekih, da ponazorimo, kako lahko preusmerjamo zahteve pri delu z metodami dejanja v ASP.NET Core 3.1.

Rezultat preusmeritve je ASP.NET Core MVC

V ASP.NET Core MVC obstaja več vrst rezultatov ukrepov, kot so RedirectResult, RedirectToActionResult, RedirectToRouteResult in LocalRedirectResult. Vsi ti razredi razširjajo razred ActionResult in vmesnike IActionResult in IKeepTempDataResult ter vrnejo Najdeno (Http Status Code 302), Trajno premaknjeno (Http Status Code 301), Začasno preusmeritev (Http Status Code 307) ali Trajno preusmeritev (Http Status Code 308 ).

V tem poglavju bomo preučili, kako lahko sodelujemo z vsakim od teh.

Uporabite RedirectResult v ASP.NET Core MVC

Za vrnitev RedirectResult lahko uporabite katerega koli od naslednjih načinov:

  • Preusmeritev - Najdena je koda stanja Http 302 (začasno premaknjena na URL, naveden v glavi lokacije)
  • RedirectPermanent - Koda stanja Http 301 Premaknjena trajno
  • RedirectPermanentPreserveMethod - Http koda stanja 308 Trajna preusmeritev
  • RedirectPreserveMethod - Http Status Code 307 Začasna preusmeritev

V naslednjih vrsticah kode je prikazano, kako lahko uporabite vsako od teh metod.

Preusmeritev ("/ Avtor / Kazalo");
RedirectPermanent ("/ Avtor / Kazalo");
RedirectPermanentPreserveMethod ("/ Avtor / Kazalo");
RedirectPreserveMethod ("/ Avtor / Kazalo");

Lahko pa vrnete primerek RedirectResult, kot je prikazano v spodnjem delčku kode.

javni indeks preusmeritve ()

{

vrni nov RedirectResult (url: "/ Avtor / Kazalo", trajno: true,

saveMethod: true);

}

Upoštevajte, da lahko metodo preusmeritve uporabite za preusmeritev zahteve na določen URL. Ta metoda je na voljo v abstraktnem osnovnem razredu, imenovanem ControllerBase.

javni indeks preusmeritve ()

{

return Redirect ("// google.com");

}

Upoštevati je treba, da krmilniki, ki jih ustvarite v ASP.NET Core MVC, razširjajo razred krmilnika. Ta razred pa razširja razred ControllerBase in izvaja vmesnike IActionFilter, IFilterMetadata, IAsyncActionFilter in IDisposable.

Uporabite RedirectToActionResult v ASP.NET Core MVC

Rezultat tega dejanja lahko uporabite za preusmeritev na določeno dejanje in krmilnik. Če ni podan noben krmilnik, preusmeri na določeno dejanje znotraj trenutnega krmilnika. Za preusmeritev na določeno dejanje in vrnitev primerka RedirectToActionResult iz metode dejanja lahko uporabite katero koli od naslednjih metod.

  • RedirectToAction - Najdena je koda stanja Http 302 (začasno premaknjena na URL, naveden v glavi lokacije)
  • RedirectToActionPermanent - Http koda stanja 301 Premaknjena trajno
  • RedirectToActionPermanentPreserveMethod - Http koda stanja 308 Trajna preusmeritev
  • RedirectToActionPreserveMethod - Http Status Code 307 Začasna preusmeritev

Naslednji delček kode prikazuje, kako je mogoče uporabiti metodo RedirectToAction.

javni indeks RedirectToActionResult ()

{

vrni RedirectToAction (actionName: "Index", ControllerName: "Author");

}

Ime krmilnika lahko preskočite, če želite zahtevo preusmeriti na način dejanja v trenutnem krmilniku. Naslednji delček kode prikazuje, kako je to mogoče doseči.

javni indeks RedirectToActionResult ()

{

vrni RedirectToAction (actionName: "Zasebnost");

}

Uporabite RedirectToRouteResult v ASP.NET Core MVC

To je še en rezultat dejanja, ki ga lahko uporabimo za preusmeritev zahteve na določeno pot. Za vrnitev primerka RedirectToRouteResult iz metode dejanja lahko uporabite katero koli od naslednjih metod.

  • RedirectToRoute - Http Status Code 302 Found (začasno premaknjen na URL, naveden v glavi lokacije)
  • RedirectToRoutePermanent - Http koda stanja 301 Premaknjena trajno
  • RedirectToRoutePermanentPreserveMethod - Http Status Code 308 Permanent Redirect
  • RedirectToRoutePreserveMethod - Http Status Code 307 Začasna preusmeritev

Naslednji delček kode prikazuje, kako je mogoče uporabiti metodo RedirectToRoute.

javni indeks RedirectToRouteResult ()

{

return RedirectToRoute ("avtor");

}

Vrednost poti lahko določite tudi pri preusmerjanju, kot je prikazano v spodnjem delčku kode.

var routeValue = novo RouteValueDictionary

(novo {action = "View", controller = "Author"});

vrni RedirectToRoute (routeValue);

Uporabite LocalRedirectResult v ASP.NET Core MVC

Ta rezultat dejanja se uporablja, kadar želite preusmeriti na lokalni URL. Če uporabite zunanji URL, vrže InvalidOperationException. Za vrnitev primerka LocalRedirectResult iz metode dejanja lahko uporabite katero koli od naslednjih metod.

  • LocalRedirect - Najdena je koda stanja Http 302 (začasno premaknjena na URL, naveden v glavi lokacije)
  • LocalRedirectPermanent - Http koda stanja 301 Premaknjena trajno
  • LocalRedirectPermanentPreserveMethod - Http koda stanja 308 Trajna preusmeritev
  • LocalRedirectPreserveMethod - Http koda stanja 307 Začasna preusmeritev

Preusmeritev na strani britvice v ASP.NET Core MVC

Na koncu upoštevajte, da lahko celo preusmerite na strani britvice z uporabo metode RedirectToPage, pri čemer določite ciljno stran britvice, na katero želite preusmeriti zahtevo. Metoda RedirectToPage vrne primerek RedirectToPageResult skupaj s kodo stanja HTTP 302.

Če imate stran z imenom Author, na katero želite preusmeriti zahtevo, lahko uporabite naslednji delček kode.

public IActionResult RedirectToAuthorPage ()

{

return RedirectToPage ("Avtor");

}

Kako narediti več v ASP.NET Core:

  • Kako uporabiti usmerjanje atributov v ASP.NET Core
  • Kako prenesti parametre v metode dejanja v ASP.NET Core MVC
  • Kako uporabljati analizatorje API v ASP.NET Core
  • Kako uporabljati žetone podatkov poti v ASP.NET Core
  • Kako uporabljati različice API v ASP.NET Core
  • Kako uporabljati predmete za prenos podatkov v ASP.NET Core 3.1
  • Kako obravnavati napake 404 v ASP.NET Core MVC
  • Kako uporabiti vbrizgavanje odvisnosti v akcijskih filtrih v ASP.NET Core 3.1
  • Kako uporabiti vzorec možnosti v ASP.NET Core
  • Kako uporabljati usmerjanje končnih točk v ASP.NET Core 3.0 MVC
  • Kako izvoziti podatke v Excel v ASP.NET Core 3.0
  • Kako uporabljati LoggerMessage v ASP.NET Core 3.0
  • Kako poslati e-pošto v ASP.NET Core
  • Kako zapisati podatke v SQL Server v ASP.NET Core
  • Kako razporediti delovna mesta z uporabo Quartz.NET v ASP.NET Core
  • Kako vrniti podatke iz spletnega API-ja ASP.NET Core
  • Kako oblikovati podatke o odzivih v ASP.NET Core
  • Kako porabiti spletni API ASP.NET Core s pomočjo RestSharp
  • Kako izvajati asinhrne operacije z uporabo Dapperja
  • Kako uporabljati zastavice funkcij v ASP.NET Core
  • Kako uporabljati atribut FromServices v ASP.NET Core
  • Kako delati s piškotki v ASP.NET Core
  • Kako delati s statičnimi datotekami v ASP.NET Core
  • Kako uporabiti prepisovanje URL-jev Middleware v ASP.NET Core
  • Kako implementirati omejevanje hitrosti v ASP.NET Core
  • Kako uporabljati Azure Application Insights v ASP.NET Core
  • Uporaba naprednih funkcij NLog v ASP.NET Core
  • Kako ravnati z napakami v spletnem API-ju ASP.NET
  • Kako implementirati globalno obravnavo izjem v ASP.NET Core MVC
  • Kako ravnati z ničelnimi vrednostmi v ASP.NET Core MVC
  • Napredno spreminjanje različic v ASP.NET Core Web API
  • Kako delati s storitvami za delavce v ASP.NET Core
  • Kako uporabljati API za zaščito podatkov v ASP.NET Core
  • Kako uporabljati pogojno vmesno programsko opremo v ASP.NET Core
  • Kako delati s stanjem seje v ASP.NET Core
  • Kako napisati učinkovite krmilnike v ASP.NET Core
$config[zx-auto] not found$config[zx-overlay] not found