Programavimas

Kaip peradresuoti užklausą ASP.NET Core MVC

ASP.NET Core yra daugiaplatformė, atviro kodo, plati, greita ir modulinė sistema, skirta kurti našias žiniatinklio programas. ASP.NET „Core MVC“ programos leidžia jums peradresuoti užklausą į nurodytą URL keliais skirtingais būdais. Šiame straipsnyje kalbama apie tai, kaip mes galime tai padaryti, naudodami kodų pavyzdžius, kur tinkama.

Norėdami dirbti su šiame straipsnyje pateiktais kodų pavyzdžiais, sistemoje turite būti įdiegę „Visual Studio 2019“. Jei dar neturite kopijos, galite atsisiųsti „Visual Studio 2019“ čia.

[Taip pat apie tai, kaip modifikuoti Dievo objektus C #]

„Visual Studio“ sukurkite ASP.NET Core MVC projektą

Pirmiausia sukurkime „ASP.NET Core“ projektą „Visual Studio 2019“. Darant prielaidą, kad „Visual Studio 2019“ yra įdiegta jūsų sistemoje, atlikite toliau nurodytus veiksmus, kad sukurtumėte naują „ASP.NET Core“ projektą „Visual Studio“.

  1. Paleiskite „Visual Studio IDE“.
  2. Spustelėkite „Sukurti naują projektą“.
  3. Lange „Kurti naują projektą“ iš rodomų šablonų sąrašo pasirinkite „ASP.NET Core Web Application“.
  4. Spustelėkite Pirmyn.
  5. Lange „Konfigūruoti naują projektą“ nurodykite naujo projekto pavadinimą ir vietą.
  6. Pasirinktinai pažymėkite žymės langelį „Įdėti sprendimą ir projektą tame pačiame kataloge“, atsižvelgiant į jūsų pageidavimus.
  7. Spustelėkite Sukurti.
  8. Kitame rodomame lange „Sukurti naują ASP.NET Core žiniatinklio programą“ viršuje esančiame išskleidžiamajame sąraše pasirinkite .NET Core kaip vykdymo laiką ir ASP.NET Core 3.1 (ar naujesnę).
  9. Norėdami sukurti naują ASP.NET Core MVC programą, kaip projekto šabloną pasirinkite „Web Application (Model-View-Controller)“.
  10. Įsitikinkite, kad nepažymėti žymės langeliai „Įgalinti„ Docker “palaikymą“ ir „Konfigūruoti HTTPS“, nes čia nenaudosime tų funkcijų.
  11. Įsitikinkite, kad autentifikavimas nustatytas kaip „Nėra autentifikavimo“, nes mes taip pat nenaudosime autentifikavimo.
  12. Spustelėkite Sukurti.

Atlikę šiuos veiksmus, „Visual Studio 2019“ sukursite naują ASP.NET Core MVC projektą. Šį projektą naudosime toliau pateiktose skiltyse, kad parodytume, kaip galime peradresuoti užklausas dirbdami su ASP.NET Core 3.1 veiksmo metodais.

Nukreipiant veiksmą gaunamas ASP.NET Core MVC

ASP.NET Core MVC yra kelių tipų veiksmų rezultatai, tokie kaip RedirectResult, RedirectToActionResult, RedirectToRouteResult ir LocalRedirectResult. Visos šios klasės praplečia „ActionResult“ klasę ir „IActionResult“ bei „IKeepTempDataResult“ sąsajas ir grąžina „Rasta“ („Http“ būsenos kodas 302), „Perkelta nuolat“ („Http“ būsenos kodas 301), „Laikinas peradresavimas“ („Http“ būsenos kodas 307) arba „Nuolatinis peradresavimas“ („Http“ būsenos kodas 308). ).

Šiame skyriuje išnagrinėsime, kaip galime dirbti su kiekvienu iš jų.

Naudokite „RedirectResult“ ASP.NET Core MVC

Norėdami grąžinti „RedirectResult“, galite naudoti bet kurį iš šių būdų:

  • Peradresavimas - rastas HTP būsenos kodas 302 (laikinai perkeltas į URL, pateiktą vietos antraštėje)
  • RedirectPermanent - Http būsenos kodas 301 perkeltas visam laikui
  • RedirectPermanentPreserveMethod - Http būsenos kodas 308 Nuolatinis peradresavimas
  • RedirectPreserveMethod - Http būsenos kodas 307 Laikinas peradresavimas

Šios kodo eilutės parodo, kaip galite naudoti kiekvieną iš šių metodų.

Peradresuoti ("/ Autorius / Rodyklė");
RedirectPermanent ("/ Autorius / Rodyklė");
RedirectPermanentPreserveMethod ("/ Autorius / Rodyklė");
RedirectPreserveMethod ("/ Autorius / Rodyklė");

Arba galite grąžinti „RedirectResult“ egzempliorių, kaip parodyta toliau pateiktame kodo fragmente.

viešasis „RedirectResult Index“ ()

{

grąžinti naują RedirectResult (URL: "/ Author / Index", permanent: true,

konservuotiMetodas: tiesa);

}

Atminkite, kad peradresavimo metodas gali būti naudojamas užklausai peradresuoti į nurodytą URL. Šis metodas galimas abstrakčioje bazinėje klasėje, vadinamoje „ControllerBase“.

viešasis „RedirectResult Index“ ()

{

grąžinti peradresavimą ("// google.com");

}

Reikėtų pažymėti, kad valdikliai, kuriuos sukūrėte ASP.NET Core MVC, praplečia valdiklių klasę. Ši klasė savo ruožtu praplečia „ControllerBase“ klasę ir įgyvendina „IActionFilter“, „IFilterMetadata“, „IAsyncActionFilter“ ir „IDisposable“ sąsajas.

Naudokite „RedirectToActionResult“ ASP.NET Core MVC

Šis veiksmo rezultatas gali būti naudojamas nukreipiant į nurodytą veiksmą ir valdiklį. Jei nenurodytas valdiklis, jis nukreipia į nurodytą veiksmą dabartiniame valdiklyje. Norėdami nukreipti į nurodytą veiksmą ir grąžinti RedirectToActionResult egzempliorių iš savo veiksmo metodo, galite naudoti bet kurį iš šių metodų.

  • RedirectToAction - Http būsenos kodas 302 rastas (laikinai perkeltas į URL, pateiktą vietos antraštėje)
  • RedirectToActionPermanent - Http būsenos kodas 301 perkeltas visam laikui
  • RedirectToActionPermanentPreserveMethod - Http būsenos kodas 308 Nuolatinis peradresavimas
  • RedirectToActionPreserveMethod - Http būsenos kodas 307 Laikinas peradresavimas

Šis kodo fragmentas parodo, kaip galima naudoti metodą RedirectToAction.

public RedirectToActionResult Index ()

{

grąžinti RedirectToAction (actionName: "Index", controllerName: "Author");

}

Galite praleisti valdiklio pavadinimą, jei norite nukreipti užklausą į veiksmo metodą dabartiniame valdiklyje. Šis kodo fragmentas parodo, kaip tai galima pasiekti.

public RedirectToActionResult Index ()

{

grąžinti RedirectToAction (actionName: "Privatumas");

}

Naudokite RedirectToRouteResult ASP.NET Core MVC

Tai dar vienas veiksmo rezultatas, kurį galima naudoti užklausai nukreipti į nurodytą maršrutą. Norėdami grąžinti RedirectToRouteResult egzempliorių iš savo veiksmo metodo, galite naudoti bet kurį iš šių metodų.

  • RedirectToRoute - rastas HTT būsenos kodas 302 (laikinai perkeltas į URL, pateiktą vietos antraštėje)
  • RedirectToRoutePermanent - Http būsenos kodas 301 perkeltas visam laikui
  • RedirectToRoutePermanentPreserveMethod - Http būsenos kodas 308 Nuolatinis peradresavimas
  • RedirectToRoutePreserveMethod - Http būsenos kodas 307 Laikinas peradresavimas

Šis kodo fragmentas parodo, kaip galima naudoti metodą RedirectToRoute.

public RedirectToRouteResult Index ()

{

grąžinti RedirectToRoute ("autorius");

}

Taip pat galite nurodyti maršruto vertę peradresuodami, kaip parodyta toliau pateiktame kodo fragmente.

var routeValue = naujas RouteValueDictionary

(naujas {action = "View", valdiklis = "Author"});

grįžti RedirectToRoute (routeValue);

Naudokite „LocalRedirectResult“ ASP.NET Core MVC

Šis veiksmo rezultatas naudojamas, kai norite peradresuoti į vietinį URL. Tai sukuria „InvalidOperationException“, jei su juo naudojate išorinį URL. Norėdami grąžinti „LocalRedirectResult“ egzempliorių iš savo veiksmo metodo, galite naudoti bet kurį iš šių metodų.

  • „LocalRedirect“ - rastas HTP būsenos kodas 302 (laikinai perkeltas į URL, pateiktą vietos antraštėje)
  • „LocalRedirectPermanent“ - Http būsenos kodas 301 perkeltas visam laikui
  • LocalRedirectPermanentPreserveMethod - Http būsenos kodas 308 Nuolatinis peradresavimas
  • LocalRedirectPreserveMethod - Http būsenos kodas 307 Laikinas peradresavimas

Nukreipkite į skustuvo puslapius ASP.NET Core MVC

Galiausiai atkreipkite dėmesį, kad netgi galite nukreipti į skustuvo puslapius naudodami metodą RedirectToPage, nurodydami tikslinį skustuvo puslapį, į kurį norite nukreipti užklausą. Metodas RedirectToPage grąžina egzempliorių RedirectToPageResult kartu su HTTP būsenos kodu 302.

Jei turite puslapį pavadinimu Autorius, kur norite, kad užklausa būtų nukreipta, galite naudoti šį kodo fragmentą.

public IActionResult RedirectToAuthorPage ()

{

grąžinti RedirectToPage ("Autorius");

}

Kaip padaryti daugiau naudojant „ASP.NET Core“:

  • Kaip naudoti atributų nukreipimą ASP.NET Core
  • Kaip perduoti parametrus veiksmų metodams ASP.NET Core MVC
  • Kaip naudoti API analizatorius ASP.NET Core
  • Kaip naudoti maršruto duomenų žetonus ASP.NET Core
  • Kaip naudoti API versijas „ASP.NET Core“
  • Kaip naudoti duomenų perdavimo objektus ASP.NET Core 3.1
  • Kaip tvarkyti 404 klaidas ASP.NET Core MVC
  • Kaip naudoti priklausomybės įpurškimą veiksmo filtruose ASP.NET Core 3.1
  • Kaip naudoti ASP.NET Core parinkčių modelį
  • Kaip naudoti galinių taškų nukreipimą ASP.NET Core 3.0 MVC
  • Kaip eksportuoti duomenis į „Excel“ naudojant ASP.NET Core 3.0
  • Kaip naudoti „LoggerMessage“ ASP.NET Core 3.0
  • Kaip siųsti el. Laiškus naudojant ASP.NET Core
  • Kaip registruoti duomenis į „SQL Server“ naudojant ASP.NET Core
  • Kaip suplanuoti darbus naudojant „Quartz.NET“ ASP.NET Core
  • Kaip grąžinti duomenis iš ASP.NET Core Web API
  • Kaip formatuoti atsakymo duomenis ASP.NET Core
  • Kaip suvartoti ASP.NET Core Web API naudojant „RestSharp“
  • Kaip atlikti asinchronines operacijas naudojant „Dapper“
  • Kaip naudoti funkcijų žymes „ASP.NET Core“
  • Kaip naudoti „FromServices“ atributą „ASP.NET Core“
  • Kaip dirbti su slapukais ASP.NET Core
  • Kaip dirbti su statiniais failais sistemoje ASP.NET Core
  • Kaip naudoti URL perrašymo tarpinę programinę įrangą ASP.NET Core
  • Kaip įdiegti normos ribojimą ASP.NET Core
  • Kaip naudoti „Azure Application Insights“ ASP.NET Core
  • Išplėstinių „NLog“ funkcijų naudojimas „ASP.NET Core“
  • Kaip tvarkyti klaidas ASP.NET žiniatinklio API
  • Kaip įdiegti visuotinį išimčių tvarkymą ASP.NET Core MVC
  • Kaip tvarkyti nulines reikšmes ASP.NET Core MVC
  • Išplėstinė ASP.NET „Core Web API“ versijų versija
  • Kaip dirbti su darbuotojų paslaugomis ASP.NET Core
  • Kaip naudoti duomenų apsaugos API ASP.NET Core
  • Kaip naudoti sąlyginę tarpinę programinę įrangą ASP.NET Core
  • Kaip dirbti su seanso būsena ASP.NET Core
  • Kaip rašyti efektyvius valdiklius ASP.NET Core