Programmering

Hvordan omdirigere en forespørsel i ASP.NET Core MVC

ASP.NET Core er en plattform, åpen kildekode, slank, rask og modulær ramme for å bygge høyytelses webapplikasjoner. ASP.NET Core MVC-applikasjoner lar deg omdirigere en forespørsel til en spesifisert URL på flere forskjellige måter. Denne artikkelen snakker om hvordan vi kan oppnå dette med kodeeksempler der det er passende.

For å jobbe med kodeeksemplene som er gitt i denne artikkelen, bør du ha Visual Studio 2019 installert på systemet ditt. Hvis du ikke allerede har en kopi, kan du laste ned Visual Studio 2019 her.

[Også på: Hvordan refaktorere Guds objekter i C #]

Opprett et ASP.NET Core MVC-prosjekt i Visual Studio

For det første, la oss lage et ASP.NET Core-prosjekt i Visual Studio 2019. Forutsatt at Visual Studio 2019 er installert i systemet ditt, følger du trinnene som er beskrevet nedenfor for å opprette et nytt ASP.NET Core-prosjekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klikk på "Opprett nytt prosjekt."
  3. I vinduet "Opprett nytt prosjekt" velger du "ASP.NET Core Web Application" fra listen over maler som vises.
  4. Klikk på Neste.
  5. I vinduet "Konfigurer ditt nye prosjekt" angir du navnet og stedet for det nye prosjektet.
  6. Merk av for "Plasser løsning og prosjekt i samme katalog", avhengig av dine preferanser.
  7. Klikk på Opprett.
  8. I vinduet "Opprett et nytt ASP.NET Core Web Application" som vises, velger du .NET Core som kjøretid og ASP.NET Core 3.1 (eller senere) fra rullegardinlisten øverst.
  9. Velg "Web Application (Model-View-Controller)" som prosjektmal for å opprette et nytt ASP.NET Core MVC-program.
  10. Forsikre deg om at avmerkingsboksene "Aktiver Docker-støtte" og "Konfigurer for HTTPS" ikke er merket av da vi ikke bruker disse funksjonene her.
  11. Forsikre deg om at autentisering er satt til "ingen godkjenning", da vi heller ikke bruker autentisering.
  12. Klikk på Opprett.

Ved å følge disse trinnene vil det opprette et nytt ASP.NET Core MVC-prosjekt i Visual Studio 2019. Vi bruker dette prosjektet i avsnittene nedenfor for å illustrere hvordan vi kan omdirigere forespørsler når vi arbeider med handlingsmetoder i ASP.NET Core 3.1.

Omdirigeringshandling resulterer i ASP.NET Core MVC

Det er flere typer handlingsresultater i ASP.NET Core MVC som RedirectResult, RedirectToActionResult, RedirectToRouteResult og LocalRedirectResult. Alle disse klassene utvider grensesnittene ActionResult og IActionResult og IKeepTempDataResult og returnerer funnet (Http Status Code 302), Flyttet permanent (Http Status Code 301), Midlertidig omdirigering (Http Status Code 307) eller Permanent omdirigering (Http Status Code 308 ).

Vi vil undersøke hvordan vi kan jobbe med hver av disse i denne delen.

Bruk RedirectResult i ASP.NET Core MVC

Du kan bruke en av følgende metoder for å returnere et RedirectResult:

  • Viderekobling - HTTP-statuskode 302 funnet (midlertidig flyttet til URL-adressen som er gitt i posisjonens overskrift)
  • RedirectPermanent - Http Status Code 301 Flyttet permanent
  • RedirectPermanentPreserveMethod - Http Status Code 308 Permanent omdirigering
  • RedirectPreserveMethod - Http Status Code 307 Midlertidig omdirigering

Følgende kodelinjer viser hvordan du kan bruke hver av disse metodene.

Viderekobling ("/ Forfatter / Indeks");
RedirectPermanent ("/ Forfatter / indeks");
RedirectPermanentPreserveMethod ("/ Forfatter / indeks");
RedirectPreserveMethod ("/ Forfatter / indeks");

Alternativt kan du returnere en forekomst av RedirectResult som vist i kodebiten gitt nedenfor.

offentlig RedirectResult-indeks ()

{

returner nytt RedirectResult (url: "/ Author / Index", permanent: true,

preserveMethod: true);

}

Merk at omdirigeringsmetoden kan brukes til å omdirigere en forespørsel til en spesifisert URL. Denne metoden er tilgjengelig i den abstrakte basisklassen kalt ControllerBase.

offentlig RedirectResult-indeks ()

{

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

}

Det bør bemerkes at kontrollerne du oppretter i ASP.NET Core MVC utvider Controller-klassen. Denne klassen utvider i sin tur ControllerBase-klassen og implementerer grensesnittene IActionFilter, IFilterMetadata, IAsyncActionFilter og IDisposable.

Bruk RedirectToActionResult i ASP.NET Core MVC

Dette handlingsresultatet kan brukes til å omdirigere til den angitte handlingen og kontrolleren. Hvis ingen kontroller er spesifisert, omdirigeres den til den angitte handlingen i den nåværende kontrolleren. Du kan bruke en av følgende metoder for å omdirigere til den angitte handlingen og returnere en forekomst av RedirectToActionResult fra handlingsmetoden.

  • RedirectToAction - Http-statuskode 302 funnet (flyttet midlertidig til URL-adressen som er gitt i posisjonens overskrift)
  • RedirectToActionPermanent - Http Status Code 301 Flyttet permanent
  • RedirectToActionPermanentPreserveMethod - Http Status Code 308 Permanent omdirigering
  • RedirectToActionPreserveMethod - Http Status Code 307 Midlertidig omdirigering

Følgende kodebit illustrerer hvordan RedirectToAction-metoden kan brukes.

offentlig RedirectToActionResult indeks ()

{

returner RedirectToAction (actionName: "Index", controllerName: "Author");

}

Du kan hoppe over kontrollernavnet hvis du vil omdirigere forespørselen til en handlingsmetode i gjeldende kontroller. Følgende kodebit viser hvordan dette kan oppnås.

offentlig RedirectToActionResult indeks ()

{

returner RedirectToAction (actionName: "Privacy");

}

Bruk RedirectToRouteResult i ASP.NET Core MVC

Dette er enda et handlingsresultat som kan brukes til å omdirigere forespørselen til den angitte ruten. Du kan bruke en av følgende metoder for å returnere en forekomst av RedirectToRouteResult fra handlingsmetoden.

  • RedirectToRoute - Http-statuskode 302 funnet (flyttet midlertidig til nettadressen som er gitt i posisjonens overskrift)
  • RedirectToRoutePermanent - Http Status Code 301 Flyttet permanent
  • RedirectToRoutePermanentPreserveMethod - Http Status Code 308 Permanent Redirect
  • RedirectToRoutePreserveMethod - Http Status Code 307 Midlertidig omdirigering

Følgende kodebit viser hvordan RedirectToRoute-metoden kan brukes.

offentlig RedirectToRouteResult indeks ()

{

returner RedirectToRoute ("forfatter");

}

Du kan også spesifisere ruteverdien når du viderekobler som vist i kodebiten gitt nedenfor.

var routeValue = ny RouteValueDictionary

(ny {action = "View", controller = "Forfatter"});

returner RedirectToRoute (routeValue);

Bruk LocalRedirectResult i ASP.NET Core MVC

Dette handlingsresultatet brukes når du vil omdirigere til en lokal URL. Det kaster et InvalidOperationException hvis du bruker en ekstern URL med den. Du kan bruke en av følgende metoder for å returnere en forekomst av LocalRedirectResult fra handlingsmetoden din.

  • LocalRedirect - Http-statuskode 302 funnet (midlertidig flyttet til URL-adressen som er gitt i plasseringens overskrift)
  • LocalRedirectPermanent - Http Status Code 301 Flyttet permanent
  • LocalRedirectPermanentPreserveMethod - Http Status Code 308 Permanent omdirigering
  • LocalRedirectPreserveMethod - Http Status Code 307 Midlertidig omdirigering

Viderekoble til barberhøvesider i ASP.NET Core MVC

Til slutt, merk at du til og med kan omdirigere til barberhøvesider ved hjelp av RedirectToPage-metoden, og spesifisere målsaks for barberhøvel som du vil omdirigere forespørselen til. RedirectToPage-metoden returnerer en RedirectToPageResult-forekomst sammen med en HTTP-statuskode 302.

Hvis du har en side som heter Forfatter, der du vil at forespørselen skal omdirigeres, kan du bruke følgende kodebit.

offentlig IActionResult RedirectToAuthorPage ()

{

returner RedirectToPage ("Forfatter");

}

Hvordan gjøre mer i ASP.NET Core:

  • Hvordan bruke attributtruting i ASP.NET Core
  • Hvordan overføre parametere til handlingsmetoder i ASP.NET Core MVC
  • Hvordan bruke API-analysatorer i ASP.NET Core
  • Hvordan bruke rutedata tokens i ASP.NET Core
  • Hvordan bruke API-versjonering i ASP.NET Core
  • Hvordan bruke dataoverføringsobjekter i ASP.NET Core 3.1
  • Hvordan håndtere 404 feil i ASP.NET Core MVC
  • Hvordan bruke avhengighetsinjeksjon i handlingsfiltre i ASP.NET Core 3.1
  • Hvordan bruke alternativmønsteret i ASP.NET Core
  • Hvordan bruke endepunktsruting i ASP.NET Core 3.0 MVC
  • Slik eksporterer du data til Excel i ASP.NET Core 3.0
  • Hvordan bruke LoggerMessage i ASP.NET Core 3.0
  • Hvordan sende e-post i ASP.NET Core
  • Hvordan logge data til SQL Server i ASP.NET Core
  • Hvordan planlegge jobber med Quartz.NET i ASP.NET Core
  • Hvordan returnere data fra ASP.NET Core Web API
  • Hvordan formatere svardata i ASP.NET Core
  • Slik bruker du et ASP.NET Core Web API ved hjelp av RestSharp
  • Hvordan utføre asynkroniseringsoperasjoner ved hjelp av Dapper
  • Hvordan bruke funksjonsflagg i ASP.NET Core
  • Hvordan bruke attributtet FromServices i ASP.NET Core
  • Hvordan jobbe med informasjonskapsler i ASP.NET Core
  • Hvordan jobbe med statiske filer i ASP.NET Core
  • Hvordan bruke URL Rewriting Middleware i ASP.NET Core
  • Hvordan implementere hastighetsbegrensning i ASP.NET Core
  • Hvordan bruke Azure Application Insights i ASP.NET Core
  • Bruker avanserte NLog-funksjoner i ASP.NET Core
  • Hvordan håndtere feil i ASP.NET Web API
  • Hvordan implementere global unntaksbehandling i ASP.NET Core MVC
  • Hvordan håndtere nullverdier i ASP.NET Core MVC
  • Avansert versjonering i ASP.NET Core Web API
  • Hvordan jobbe med arbeidstjenester i ASP.NET Core
  • Hvordan bruke API for databeskyttelse i ASP.NET Core
  • Hvordan bruke betinget mellomvare i ASP.NET Core
  • Hvordan jobbe med økttilstand i ASP.NET Core
  • Hvordan skrive effektive kontrollere i ASP.NET Core
$config[zx-auto] not found$config[zx-overlay] not found