Programmering

Sådan omdirigeres en anmodning i ASP.NET Core MVC

ASP.NET Core er en platform, åben kilde, lean, hurtig og modulær ramme til opbygning af højtydende webapplikationer. ASP.NET Core MVC-applikationer giver dig mulighed for at omdirigere en anmodning til en bestemt URL på flere forskellige måder. Denne artikel taler om, hvordan vi kan opnå dette med kodeeksempler, hvor det er relevant.

For at arbejde med kodeeksemplerne i denne artikel skal du have Visual Studio 2019 installeret i dit system. Hvis du ikke allerede har en kopi, kan du downloade Visual Studio 2019 her.

[Også om: Sådan refaktorerer Gud objekter i C #]

Opret et ASP.NET Core MVC-projekt i Visual Studio

Lad os først oprette et ASP.NET Core-projekt i Visual Studio 2019. Forudsat at Visual Studio 2019 er installeret i dit system, skal du følge nedenstående trin for at oprette et nyt ASP.NET Core-projekt i Visual Studio.

  1. Start Visual Studio IDE.
  2. Klik på "Opret nyt projekt."
  3. I vinduet "Opret nyt projekt" skal du vælge "ASP.NET Core Web Application" fra listen over skabeloner, der vises.
  4. Klik på Næste.
  5. I vinduet "Konfigurer dit nye projekt" skal du angive navnet og placeringen for det nye projekt.
  6. Marker afkrydsningsfeltet "Placer løsning og projekt i samme bibliotek" afhængigt af dine præferencer.
  7. Klik på Opret.
  8. I vinduet "Opret en ny ASP.NET Core-webapplikation", der vises derefter, skal du vælge .NET Core som runtime og ASP.NET Core 3.1 (eller senere) fra rullelisten øverst.
  9. Vælg "Webapplikation (Model-View-Controller)" som projektskabelon for at oprette et nyt ASP.NET Core MVC-program.
  10. Sørg for, at afkrydsningsfelterne "Aktivér Docker-support" og "Konfigurer til HTTPS" ikke er markeret, da vi ikke bruger disse funktioner her.
  11. Sørg for, at godkendelse er indstillet til "Ingen godkendelse", da vi heller ikke bruger godkendelse.
  12. Klik på Opret.

Ved at følge disse trin oprettes et nyt ASP.NET Core MVC-projekt i Visual Studio 2019. Vi bruger dette projekt i afsnittene nedenfor for at illustrere, hvordan vi kan omdirigere anmodninger, når vi arbejder med handlingsmetoder i ASP.NET Core 3.1.

Omdirigeringshandling resulterer i ASP.NET Core MVC

Der er flere typer handlingsresultater i ASP.NET Core MVC såsom RedirectResult, RedirectToActionResult, RedirectToRouteResult og LocalRedirectResult. Alle disse klasser udvider grænsefladen ActionResult og IActionResult og IKeepTempDataResult og returnerer fundet (Http Status Code 302), Flyttes permanent (Http Status Code 301), Midlertidig omdirigering (Http Status Code 307) eller Permanent omdirigering (Http Status Code 308 ).

Vi undersøger, hvordan vi kan arbejde med hver af disse i dette afsnit.

Brug RedirectResult i ASP.NET Core MVC

Du kan bruge en af ​​følgende metoder til at returnere et RedirectResult:

  • Omdirigering - HTTP-statuskode 302 fundet (midlertidigt flyttet til den URL, der er angivet i placeringsoverskriften)
  • RedirectPermanent - Http Status Code 301 Flyttet permanent
  • RedirectPermanentPreserveMethod - HTTP-statuskode 308 Permanent omdirigering
  • RedirectPreserveMethod - Http Status Code 307 Midlertidig omdirigering

Følgende kodelinjer viser, hvordan du kan bruge hver af disse metoder.

Omdirigering ("/ Forfatter / Indeks");
RedirectPermanent ("/ Forfatter / Indeks");
RedirectPermanentPreserveMethod ("/ Forfatter / Indeks");
RedirectPreserveMethod ("/ Forfatter / Indeks");

Alternativt kan du returnere en forekomst af RedirectResult som vist i kodestykket nedenfor.

offentligt RedirectResult-indeks ()

{

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

preserveMethod: sand);

}

Bemærk, at omdirigeringsmetoden kan bruges til at omdirigere en anmodning til en specificeret URL. Denne metode er tilgængelig i den abstrakte basisklasse kaldet ControllerBase.

offentligt RedirectResult-indeks ()

{

returner omdirigering ("// google.com");

}

Det skal bemærkes, at de controllere, du opretter i ASP.NET Core MVC, udvider Controller-klassen. Denne klasse udvider igen ControllerBase-klassen og implementerer grænsefladerne IActionFilter, IFilterMetadata, IAsyncActionFilter og IDisposable.

Brug RedirectToActionResult i ASP.NET Core MVC

Dette handlingsresultat kan bruges til at omdirigere til den angivne handling og controller. Hvis der ikke er angivet nogen controller, omdirigeres den til den angivne handling inden for den aktuelle controller. Du kan bruge en af ​​følgende metoder til at omdirigere til den angivne handling og returnere en forekomst af RedirectToActionResult fra din handlingsmetode.

  • RedirectToAction - Http-statuskode 302 fundet (flyttet midlertidigt til den URL, der er angivet i placeringsoverskriften)
  • RedirectToActionPermanent - Http Status Code 301 Flyttet permanent
  • RedirectToActionPermanentPreserveMethod - Http Status Code 308 Permanent omdirigering
  • RedirectToActionPreserveMethod - Http Status Code 307 Midlertidig omdirigering

Følgende kodestykke illustrerer, hvordan RedirectToAction-metoden kan bruges.

offentlig RedirectToActionResult-indeks ()

{

returner RedirectToAction (handlingsnavn: "Indeks", controllernavn: "Forfatter");

}

Du kan springe controller-navnet over, hvis du vil omdirigere anmodningen til en handlingsmetode i den aktuelle controller. Følgende kodestykke viser, hvordan dette kan opnås.

offentlig RedirectToActionResult-indeks ()

{

returner RedirectToAction (actionName: "Privacy");

}

Brug RedirectToRouteResult i ASP.NET Core MVC

Dette er endnu et handlingsresultat, der kan bruges til at omdirigere anmodningen til den angivne rute. Du kan bruge en af ​​følgende metoder til at returnere en forekomst af RedirectToRouteResult fra din handlingsmetode.

  • RedirectToRoute - Http-statuskode 302 fundet (midlertidigt flyttet til den URL, der er angivet i placeringsoverskriften)
  • RedirectToRoutePermanent - Http Status Code 301 Flyttet permanent
  • RedirectToRoutePermanentPreserveMethod - Http Status Code 308 Permanent Redirect
  • RedirectToRoutePreserveMethod - Http Status Code 307 Midlertidig omdirigering

Følgende kodestykke viser, hvordan RedirectToRoute-metoden kan bruges.

offentlig RedirectToRouteResult Index ()

{

returner RedirectToRoute ("forfatter");

}

Du kan også angive ruteværdien ved omdirigering som vist i kodestykket nedenfor.

var routeValue = ny RouteValueDictionary

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

returner RedirectToRoute (routeValue);

Brug LocalRedirectResult i ASP.NET Core MVC

Dette handlingsresultat bruges, når du vil omdirigere til en lokal URL. Det kaster en InvalidOperationException, hvis du bruger en ekstern URL med den. Du kan bruge en af ​​følgende metoder til at returnere en forekomst af LocalRedirectResult fra din handlingsmetode.

  • LocalRedirect - HTTP-statuskode 302 fundet (midlertidigt flyttet til den URL, der er angivet i placeringsoverskriften)
  • LocalRedirectPermanent - Http-statuskode 301 Flyttet permanent
  • LocalRedirectPermanentPreserveMethod - Http Status Code 308 Permanent omdirigering
  • LocalRedirectPreserveMethod - Http Status Code 307 Midlertidig omdirigering

Omdiriger til barbermaskine sider i ASP.NET Core MVC

Endelig skal du bemærke, at du endda kan omdirigere til barbermaskiner ved hjælp af RedirectToPage-metoden og angive den målknivside, som anmodningen skal omdirigeres til. Metoden RedirectToPage returnerer en RedirectToPageResult-forekomst sammen med en HTTP-statuskode 302.

Hvis du har en side med navnet Forfatter, hvor du ønsker, at anmodningen skal omdirigeres, kan du bruge følgende kodestykke.

offentlig IActionResult RedirectToAuthorPage ()

{

returner RedirectToPage ("Forfatter");

}

Sådan gør du mere i ASP.NET Core:

  • Sådan bruges attributrute i ASP.NET Core
  • Sådan overføres parametre til handlingsmetoder i ASP.NET Core MVC
  • Sådan bruges API-analysatorer i ASP.NET Core
  • Sådan bruges rutedata tokens i ASP.NET Core
  • Sådan bruges API-versionering i ASP.NET Core
  • Sådan bruges dataoverførselsobjekter i ASP.NET Core 3.1
  • Sådan håndteres 404 fejl i ASP.NET Core MVC
  • Sådan bruges afhængighedsindsprøjtning i handlingsfiltre i ASP.NET Core 3.1
  • Sådan bruges indstillingsmønsteret i ASP.NET Core
  • Sådan bruges slutpunktsrute i ASP.NET Core 3.0 MVC
  • Sådan eksporteres data til Excel i ASP.NET Core 3.0
  • Sådan bruges LoggerMessage i ASP.NET Core 3.0
  • Sådan sendes e-mails i ASP.NET Core
  • Sådan logges data til SQL Server i ASP.NET Core
  • Sådan planlægger du job med Quartz.NET i ASP.NET Core
  • Sådan returneres data fra ASP.NET Core Web API
  • Sådan formateres svardata i ASP.NET Core
  • Sådan forbruges en ASP.NET Core Web API ved hjælp af RestSharp
  • Sådan udføres asynkroniseringshandlinger ved hjælp af Dapper
  • Sådan bruges funktionsflag i ASP.NET Core
  • Sådan bruges attributten FromServices i ASP.NET Core
  • Sådan arbejder du med cookies i ASP.NET Core
  • Sådan arbejder du med statiske filer i ASP.NET Core
  • Sådan bruges URL-omskrivning af Middleware i ASP.NET Core
  • Sådan implementeres hastighedsbegrænsning i ASP.NET Core
  • Sådan bruges Azure Application Insights i ASP.NET Core
  • Brug af avancerede NLog-funktioner i ASP.NET Core
  • Sådan håndteres fejl i ASP.NET Web API
  • Sådan implementeres global undtagelseshåndtering i ASP.NET Core MVC
  • Sådan håndteres nulværdier i ASP.NET Core MVC
  • Avanceret versionering i ASP.NET Core Web API
  • Sådan arbejder du med arbejdertjenester i ASP.NET Core
  • Sådan bruges Data Protection API i ASP.NET Core
  • Sådan bruges betinget middleware i ASP.NET Core
  • Sådan arbejder du med sessionstilstand i ASP.NET Core
  • Sådan skriver du effektive controllere i ASP.NET Core