Ohjelmointi

Kuinka uudelleenohjata pyyntö ASP.NET Core MVC: ssä

ASP.NET Core on monialustainen, avoimen lähdekoodin, kevyt, nopea ja modulaarinen kehys tehokkaiden verkkosovellusten rakentamiseen. ASP.NET Core MVC -sovellusten avulla voit ohjata pyynnön määritettyyn URL-osoitteeseen useilla eri tavoilla. Tässä artikkelissa kerrotaan, miten voimme saavuttaa tämän koodiesimerkkeillä aina kun se on tarkoituksenmukaista.

Jotta voit työskennellä tässä artikkelissa annettujen koodiesimerkkien kanssa, järjestelmässäsi on oltava asennettuna Visual Studio 2019. Jos sinulla ei vielä ole kopiota, voit ladata Visual Studio 2019 täältä.

[Katso myös: Kuinka muokata Jumalan esineitä C #: ssä]

Luo ASP.NET Core MVC -projekti Visual Studiossa

Ensinnäkin, luodaan ASP.NET-ydinprojekti Visual Studio 2019: ssä. Olettaen, että Visual Studio 2019 on asennettu järjestelmään, luo uusi ASP.NET Core -projekti Visual Studiossa noudattamalla alla olevia ohjeita.

  1. Käynnistä Visual Studio IDE.
  2. Napsauta Luo uusi projekti.
  3. Valitse Luo uusi projekti -ikkunassa ”ASP.NET Core Web Application” näytetystä malliluettelosta.
  4. Napsauta Seuraava.
  5. Määritä uuden projektin määritys -ikkunassa uuden projektin nimi ja sijainti.
  6. Valitse vaihtoehtoisesti Sijoita ratkaisu ja projekti samaan hakemistoon -valintaruutu mieltymystesi mukaan.
  7. Napsauta Luo.
  8. Valitse seuraavassa näkyvässä "Luo uusi ASP.NET-ydinverkkosovellus" -ikkunassa .NET Core ajonaikaisena ja ASP.NET Core 3.1 (tai uudempi) yläreunan avattavasta luettelosta.
  9. Luo uusi ASP.NET Core MVC -sovellus valitsemalla projektisivuksi ”Web-sovellus (Model-View-Controller)”.
  10. Varmista, että valintaruudut Ota Docker-tuki käyttöön ja Määritä HTTPS: lle ei ole valittu, koska emme käytä näitä ominaisuuksia täällä.
  11. Varmista, että todennuksen asetuksena on Ei todentamista, koska emme myöskään käytä todennusta.
  12. Napsauta Luo.

Näiden vaiheiden seuraamalla luodaan uusi ASP.NET Core MVC -projekti Visual Studio 2019: ssä. Käytämme tätä projektia alla olevissa osioissa havainnollistaaksemme, kuinka voimme ohjata pyyntöjä työskennellessäsi ASP.NET Core 3.1: n toimintamenetelmien kanssa.

Uudelleenohjaustoiminto johtaa ASP.NET Core MVC: hen

ASP.NET Core MVC: ssä on useita toimintatuloksia, kuten RedirectResult, RedirectToActionResult, RedirectToRouteResult ja LocalRedirectResult. Kaikki nämä luokat laajentavat ActionResult-luokkaa, IActionResult- ja IKeepTempDataResult-rajapintoja ja palauttavat löydetyt (Http-tilakoodi 302), Siirretty pysyvästi (Http-tilakoodi 301), Väliaikaiset uudelleenohjaukset (Http-tilakoodi 307) tai Pysyvät uudelleenohjaukset (Http-tilakoodit 308) ).

Tässä osiossa tutkitaan, miten voimme työskennellä kaikkien näiden kanssa.

Käytä RedirectResultia ASP.NET Core MVC: ssä

Voit käyttää jotakin seuraavista tavoista palauttaa RedirectResult:

  • Uudelleenohjaus - Http-tilakoodi 302 löydetty (siirretty tilapäisesti sijaintikentän URL-osoitteeseen)
  • RedirectPermanent - Http-tilakoodi 301 siirretty pysyvästi
  • RedirectPermanentPreserveMethod - Http-tilakoodi 308 Pysyvä uudelleenohjaus
  • RedirectPreserveMethod - Http-tilakoodi 307 Väliaikainen uudelleenohjaus

Seuraavat koodirivit osoittavat, kuinka voit käyttää näitä menetelmiä.

Uudelleenohjaus ("/ Kirjoittaja / Hakemisto");
RedirectPermanent ("/ Kirjoittaja / Hakemisto");
RedirectPermanentPreserveMethod ("/ Kirjoittaja / Hakemisto");
RedirectPreserveMethod ("/ Kirjoittaja / Hakemisto");

Vaihtoehtoisesti voit palauttaa RedirectResult-esiintymän alla olevan koodinpätkän mukaisesti.

public RedirectResult Index ()

{

palauta uusi RedirectResult (URL: "/ Kirjoittaja / Hakemisto", pysyvä: tosi,

säilytäMetode: true);

}

Huomaa, että Redirect-menetelmää voidaan käyttää pyynnön uudelleenohjaamiseen määritettyyn URL-osoitteeseen. Tämä menetelmä on käytettävissä abstraktissa perusluokassa nimeltä ControllerBase.

public RedirectResult Index ()

{

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

}

On huomattava, että ASP.NET Core MVC: ssä luomasi ohjaimet laajentavat Controller-luokkaa. Tämä luokka puolestaan ​​laajentaa ControllerBase-luokkaa ja toteuttaa IActionFilter-, IFilterMetadata-, IAsyncActionFilter- ja IDisposable-rajapinnat.

Käytä RedirectToActionResultia ASP.NET Core MVC: ssä

Tätä toimintotulosta voidaan käyttää ohjaamaan määritettyyn toimintoon ja ohjaimeen. Jos ohjainta ei ole määritetty, se ohjaa määritettyyn toimintoon nykyisessä ohjaimessa. Voit käyttää mitä tahansa seuraavista tavoista ohjata määritettyyn toimintoon ja palauttaa RedirectToActionResult-ilmentymän toimintatavastasi.

  • RedirectToAction - Http-tilakoodi 302 löydetty (siirretty tilapäisesti sijaintikentän URL-osoitteeseen)
  • RedirectToActionPermanent - Http-tilakoodi 301 siirretty pysyvästi
  • RedirectToActionPermanentPreserveMethod - Http-tilakoodi 308 Pysyvä uudelleenohjaus
  • RedirectToActionPreserveMethod - Http-tilakoodi 307 Väliaikainen uudelleenohjaus

Seuraava koodinpätkä kuvaa kuinka RedirectToAction-menetelmää voidaan käyttää.

public RedirectToActionResult Index ()

{

return RedirectToAction (actionName: "Hakemisto", controllerName: "Kirjoittaja");

}

Voit ohittaa ohjaimen nimen, jos haluat ohjata pyynnön nykyisen ohjaimen toimintamenetelmään. Seuraava koodinpätkä osoittaa, miten tämä voidaan saavuttaa.

public RedirectToActionResult Index ()

{

return RedirectToAction (actionName: "Tietosuoja");

}

Käytä RedirectToRouteResultia ASP.NET Core MVC: ssä

Tämä on jälleen yksi toimintatulos, jota voidaan käyttää pyynnön ohjaamiseen määritetylle reitille. Voit käyttää mitä tahansa seuraavista tavoista palauttaa RedirectToRouteResult-esiintymän toimintatavastasi.

  • RedirectToRoute - Http-tilakoodi 302 löydetty (siirretty väliaikaisesti sijaintikentän URL-osoitteeseen)
  • RedirectToRoutePermanent - Http-tilakoodi 301 siirretty pysyvästi
  • RedirectToRoutePermanentPreserveMethod - Http-tilakoodi 308 Pysyvä uudelleenohjaus
  • RedirectToRoutePreserveMethod - Http-tilakoodi 307 Väliaikainen uudelleenohjaus

Seuraava koodinpätkä osoittaa, kuinka RedirectToRoute-menetelmää voidaan käyttää.

public RedirectToRouteResult Index ()

{

return RedirectToRoute ("kirjailija");

}

Voit myös määrittää reitin arvon uudelleenohjauksessa alla olevan koodinpätkän mukaisesti.

var routeValue = uusi RouteValueDictionary

(uusi {action = "View", ohjain = "Author"});

return RedirectToRoute (routeValue);

Käytä LocalRedirectResultia ASP.NET Core MVC: ssä

Tätä toimintotulosta käytetään, kun haluat ohjata paikalliseen URL-osoitteeseen. Se heittää InvalidOperationExceptionin, jos käytät sen kanssa ulkoista URL-osoitetta. Voit käyttää mitä tahansa seuraavista tavoista palauttaa LocalRedirectResult-ilmentymän toimintatavastasi.

  • LocalRedirect - Http-tilakoodi 302 löydetty (siirretty tilapäisesti sijaintikentän URL-osoitteeseen)
  • LocalRedirectPermanent - Http-tilakoodi 301 siirretty pysyvästi
  • LocalRedirectPermanentPreserveMethod - Http-tilakoodi 308 Pysyvä uudelleenohjaus
  • LocalRedirectPreserveMethod - Http-tilakoodi 307 Väliaikainen uudelleenohjaus

Uudelleenohjaus partakoneen sivuille ASP.NET Core MVC: ssä

Lopuksi, huomaa, että voit jopa ohjata partakoneen sivuille käyttämällä RedirectToPage-menetelmää ja määrittelemällä kohdekäyttösivun, johon pyyntö ohjataan uudelleen. RedirectToPage-menetelmä palauttaa RedirectToPageResult-ilmentymän yhdessä HTTP-tilakoodin 302 kanssa.

Jos sinulla on Kirjoittaja-sivu, johon haluat ohjata pyynnön, voit käyttää seuraavaa koodinpätkää.

public IActionResult RedirectToAuthorPage ()

{

return RedirectToPage ("Kirjoittaja");

}

Kuinka tehdä enemmän ASP.NET Core -sovelluksessa:

  • Attribuuttien reitityksen käyttäminen ASP.NET Core -sovelluksessa
  • Parametrien siirtäminen toimintamenetelmiin ASP.NET Core MVC: ssä
  • Kuinka käyttää API-analysaattoreita ASP.NET Core -sovelluksessa
  • Kuinka käyttää reittitunnuksia ASP.NET Core -sovelluksessa
  • Kuinka käyttää API-versiota ASP.NET Core -sovelluksessa
  • Kuinka käyttää tiedonsiirtoobjekteja ASP.NET Core 3.1: ssä
  • Kuinka käsitellä 404 virhettä ASP.NET Core MVC: ssä
  • Riippuvuusinjektion käyttäminen ASP.NET Core 3.1 -suodattimissa
  • Asetuskuvion käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka käyttää päätepisteiden reititystä ASP.NET Core 3.0 MVC: ssä
  • Tietojen vieminen Exceliin ASP.NET Core 3.0: ssa
  • LoggerMessagen käyttäminen ASP.NET Core 3.0: ssa
  • Kuinka lähettää sähköposteja ASP.NET Core -sovelluksessa
  • Tietojen kirjaaminen SQL Server -palvelimeen ASP.NET Core -sovelluksessa
  • Työn ajoitus Quartz.NET: n avulla ASP.NET Core -sovelluksessa
  • Tietojen palauttaminen ASP.NET Core Web -sovellusliittymästä
  • Kuinka muotoilla vastaustiedot ASP.NET Core -sovelluksessa
  • ASP.NET Core Web -sovellusliittymän kuluttaminen RestSharpin avulla
  • Asynkronointitoimintojen suorittaminen Dapperin avulla
  • Ominaisuuslippujen käyttäminen ASP.NET Core -sovelluksessa
  • FromServices-määritteen käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka toimia evästeiden kanssa ASP.NET Core -sovelluksessa
  • Staattisten tiedostojen käsittely ASP.NET Core -sovelluksessa
  • URL: n uudelleenkirjoittamisen väliohjelmiston käyttäminen ASP.NET Core -sovelluksessa
  • Nopeudenrajoituksen toteuttaminen ASP.NET Core -sovelluksessa
  • Kuinka käyttää Azure Application Insightsia ASP.NET Core -sovelluksessa
  • NLog-lisäominaisuuksien käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka käsitellä virheitä ASP.NET Web API: ssa
  • Kuinka toteuttaa maailmanlaajuinen poikkeusten käsittely ASP.NET Core MVC: ssä
  • Kuinka käsitellä nolla-arvoja ASP.NET Core MVC: ssä
  • Edistynyt versiointi ASP.NET Core Web -sovellusliittymässä
  • Kuinka työskennellä työntekijöiden palveluiden kanssa ASP.NET Core -sovelluksessa
  • Tietosuoja-sovellusliittymän käyttö ASP.NET Core -sovelluksessa
  • Ehdollisen väliohjelmiston käyttäminen ASP.NET Core -sovelluksessa
  • Istunnon tilan käyttäminen ASP.NET Core -sovelluksessa
  • Kuinka kirjoittaa tehokkaita ohjaimia ASP.NET Core -sovellukseen
$config[zx-auto] not found$config[zx-overlay] not found