Programmēšana

Kā novirzīt pieprasījumu ASP.NET Core MVC

ASP.NET Core ir starpplatformu, atvērtā koda, vienkārša, ātra un modulāra sistēma augstas veiktspējas tīmekļa lietojumprogrammu veidošanai. ASP.NET Core MVC lietojumprogrammas ļauj vairākos dažādos veidos novirzīt pieprasījumu uz norādīto URL. Šajā rakstā ir runāts par to, kā mēs to varam panākt, izmantojot kodu piemērus, kur vien tas ir piemērots.

Lai strādātu ar šajā rakstā sniegtajiem kodu piemēriem, sistēmā jābūt instalētai Visual Studio 2019. Ja jums vēl nav kopijas, varat lejupielādēt Visual Studio 2019 šeit.

[Arī par: Kā pārveidot Dieva objektus C #]

Izveidojiet ASP.NET Core MVC projektu Visual Studio

Vispirms izveidosim ASP.NET Core projektu Visual Studio 2019. Pieņemot, ka Visual Studio 2019 ir instalēta jūsu sistēmā, veiciet tālāk norādītās darbības, lai izveidotu jaunu ASP.NET Core projektu Visual Studio.

  1. Palaidiet Visual Studio IDE.
  2. Noklikšķiniet uz “Izveidot jaunu projektu”.
  3. Logā “Izveidot jaunu projektu” parādīto veidņu sarakstā atlasiet “ASP.NET Core Web Application”.
  4. Noklikšķiniet uz Tālāk.
  5. Logā “Konfigurēt jauno projektu” norādiet jaunā projekta nosaukumu un vietu.
  6. Pēc izvēles atzīmējiet izvēles rūtiņu “Novietot risinājumu un projektu vienā direktorijā” atkarībā no jūsu vēlmēm.
  7. Noklikšķiniet uz Izveidot.
  8. Nākamajā logā “Izveidot jaunu ASP.NET Core tīmekļa lietojumprogrammu” augšdaļā esošajā nolaižamajā sarakstā atlasiet .NET Core kā izpildlaiku un ASP.NET Core 3.1 (vai jaunāku).
  9. Atlasiet “Web Application (Model-View-Controller)” kā projekta veidni, lai izveidotu jaunu ASP.NET Core MVC lietojumprogrammu.
  10. Pārliecinieties, vai nav atzīmētas izvēles rūtiņas “Iespējot Docker atbalstu” un “Konfigurēt HTTPS”, jo mēs šeit neizmantosim šīs funkcijas.
  11. Pārliecinieties, vai autentifikācijai ir iestatīta vērtība “Nav autentifikācijas”, jo mēs arī neizmantosim autentifikāciju.
  12. Noklikšķiniet uz Izveidot.

Veicot šīs darbības, Visual Studio 2019 tiks izveidots jauns ASP.NET Core MVC projekts. Šo projektu izmantosim tālāk esošajās sadaļās, lai ilustrētu, kā mēs varam novirzīt pieprasījumus, strādājot ar darbības metodēm ASP.NET Core 3.1.

Novirzīšanas darbības rezultātā tiek iegūts ASP.NET Core MVC

ASP.NET Core MVC ir vairāki darbības rezultātu veidi, piemēram, RedirectResult, RedirectToActionResult, RedirectToRouteResult un LocalRedirectResult. Visas šīs klases paplašina klasi ActionResult un saskarnes IActionResult un IKeepTempDataResult un atgriež atrastās (Http statusa kods 302), pastāvīgi pārvietotās (Http statusa kods 301), pagaidu novirzīšanas (Http statusa kods 307) vai pastāvīgās novirzīšanas (Http statusa kods 308). ).

Šajā sadaļā mēs pārbaudīsim, kā mēs varam strādāt ar katru no šiem.

Izmantojiet RedirectResult ASP.NET Core MVC

Lai atgrieztu novirzīšanas rezultātu, varat izmantot kādu no šīm metodēm:

  • Novirzīšana - Http statusa kods 302 atrasts (īslaicīgi pārvietots uz URL, kas norādīts atrašanās vietas galvenē)
  • RedirectPermanent - Http statusa kods 301 ir pārvietots pastāvīgi
  • RedirectPermanentPreserveMethod - Http statusa kods 308 Permanent Redirect
  • RedirectPreserveMethod - Http statusa kods 307 Pagaidu novirzīšana

Nākamās koda rindas parāda, kā jūs varat izmantot katru no šīm metodēm.

Novirzīšana ("/ Autors / Indekss");
RedirectPermanent ("/ Autors / Indekss");
RedirectPermanentPreserveMethod ("/ Autors / Indekss");
RedirectPreserveMethod ("/ Autors / Indekss");

Varat arī atgriezt RedirectResult gadījumu, kā parādīts tālāk sniegtajā koda fragmentā.

publiskais RedirectResult indekss ()

{

atgriezt jaunu RedirectResult (URL: "/ Autors / Indekss", pastāvīgs: patiess,

saglabātMetode: true);

}

Ņemiet vērā, ka novirzīšanas metodi var izmantot, lai novirzītu pieprasījumu uz noteiktu URL. Šī metode ir pieejama abstraktā bāzes klasē ar nosaukumu ControllerBase.

publiskais RedirectResult indekss ()

{

atgriezt novirzīšanu ("// google.com");

}

Jāatzīmē, ka kontrolieri, kurus izveidojat ASP.NET Core MVC, paplašina Controller klasi. Šī klase savukārt paplašina klasi ControllerBase un ievieš saskarnes IActionFilter, IFilterMetadata, IAsyncActionFilter un IDisposable.

Izmantojiet RedirectToActionResult ASP.NET Core MVC

Šo darbību rezultātu var izmantot, lai novirzītu uz norādīto darbību un kontrolieri. Ja nav norādīts kontrolleris, tas novirza uz norādīto darbību pašreizējā kontrollerī. Varat izmantot jebkuru no šīm metodēm, lai novirzītu uz norādīto darbību un atgrieztu RedirectToActionResult gadījumu no savas darbības metodes.

  • RedirectToAction - Http statusa kods 302 atrasts (īslaicīgi pārvietots uz URL, kas norādīts atrašanās vietas galvenē)
  • RedirectToActionPermanent - Http statusa kods 301 ir pārvietots pastāvīgi
  • RedirectToActionPermanentPreserveMethod - Http statusa kods 308 Pastāvīgā novirzīšana
  • RedirectToActionPreserveMethod - Http statusa kods 307 Pagaidu novirzīšana

Šis koda fragments parāda, kā var izmantot metodi RedirectToAction.

publiskais RedirectToActionResult indekss ()

{

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

}

Varat izlaist kontroliera nosaukumu, ja vēlaties novirzīt pieprasījumu uz darbības metodi pašreizējā kontrollerī. Šis koda fragments parāda, kā to var panākt.

publiskais RedirectToActionResult indekss ()

{

atgriezt RedirectToAction (actionName: "Privacy");

}

Izmantojiet RedirectToRouteResult ASP.NET Core MVC

Tas ir vēl viens darbības rezultāts, kuru var izmantot, lai novirzītu pieprasījumu uz norādīto maršrutu. Varat izmantot jebkuru no šīm metodēm, lai atgrieztu RedirectToRouteResult gadījumu no savas darbības metodes.

  • RedirectToRoute - atrasts HTT statusa kods 302 (īslaicīgi pārvietots uz URL, kas norādīts atrašanās vietas galvenē)
  • RedirectToRoutePermanent - Http statusa kods 301 ir pārvietots pastāvīgi
  • RedirectToRoutePermanentPreserveMethod - Http statusa kods 308 Pastāvīgā novirzīšana
  • RedirectToRoutePreserveMethod - Http statusa kods 307 Pagaidu novirzīšana

Šis koda fragments parāda, kā var izmantot metodi RedirectToRoute.

publiskais RedirectToRouteResult indekss ()

{

atgriezt RedirectToRoute ("autors");

}

Novirzot, varat norādīt arī maršruta vērtību, kā parādīts tālāk sniegtajā koda fragmentā.

var routeValue = jauna RouteValueDictionary

(jauns {action = "View", kontrolieris = "Autors"});

atgriezties RedirectToRoute (routeValue);

Izmantojiet LocalRedirectResult ASP.NET Core MVC

Šis darbības rezultāts tiek izmantots, ja vēlaties novirzīt uz vietējo URL. Tas rada InvalidOperationException, ja ar to izmantojat ārēju URL. Lai atgrieztu LocalRedirectResult instanci no savas darbības metodes, varat izmantot jebkuru no šīm metodēm.

  • LocalRedirect - Http statusa kods 302 atrasts (īslaicīgi pārvietots uz URL, kas norādīts atrašanās vietas galvenē)
  • LocalRedirectPermanent - Http statusa kods 301 ir pārvietots pastāvīgi
  • LocalRedirectPermanentPreserveMethod - Http statusa kods 308 Pastāvīgā novirzīšana
  • LocalRedirectPreserveMethod - Http statusa kods 307 Pagaidu novirzīšana

Novirzīšana uz skuvekļa lapām ASP.NET Core MVC

Visbeidzot, ņemiet vērā, ka jūs pat varat novirzīt uz skuvekļa lapām, izmantojot metodi RedirectToPage, norādot mērķa skuvekļa lapu, uz kuru novirzīt pieprasījumu. Metode RedirectToPage atgriež RedirectToPageResult instanci kopā ar HTTP statusa kodu 302.

Ja jums ir lapa ar nosaukumu Autors, kur vēlaties, lai pieprasījums tiktu novirzīts, varat izmantot šo koda fragmentu.

public IActionResult RedirectToAuthorPage ()

{

atgriezt RedirectToPage ("Autors");

}

Kā paveikt vairāk programmā ASP.NET Core:

  • Kā izmantot atribūtu maršrutēšanu ASP.NET Core
  • Kā nodot parametrus darbības metodēm ASP.NET Core MVC
  • Kā izmantot API analizatorus ASP.NET Core
  • Kā izmantot maršruta datu marķierus ASP.NET Core
  • Kā izmantot API versijas ASP.NET Core
  • Kā izmantot datu pārsūtīšanas objektus ASP.NET Core 3.1
  • Kā rīkoties ar 404 kļūdām ASP.NET Core MVC
  • Kā atkarības injekciju izmantot darbības filtros ASP.NET Core 3.1
  • Kā izmantot opciju modeli ASP.NET Core
  • Kā izmantot galapunkta maršrutēšanu ASP.NET Core 3.0 MVC
  • Kā eksportēt datus uz Excel programmā ASP.NET Core 3.0
  • Kā lietot LoggerMessage ASP.NET Core 3.0
  • Kā nosūtīt e-pastus ASP.NET Core
  • Kā reģistrēt datus SQL Server ASP.NET Core
  • Kā ieplānot darbus, izmantojot Quartz.NET ASP.NET Core
  • Kā atgriezt datus no ASP.NET Core Web API
  • Kā formatēt atbildes datus ASP.NET Core
  • Kā patērēt ASP.NET Core Web API, izmantojot RestSharp
  • Kā veikt asinhronas darbības, izmantojot Dapper
  • Kā izmantot funkciju karodziņus ASP.NET Core
  • Kā izmantot atribūtu FromServices ASP.NET Core
  • Kā strādāt ar sīkdatnēm ASP.NET Core
  • Kā strādāt ar statiskiem failiem ASP.NET Core
  • Kā izmantot URL pārrakstīšanas starpprogrammatūru ASP.NET Core
  • Kā ieviest ātruma ierobežošanu ASP.NET Core
  • Kā izmantot Azure Application Insights ASP.NET Core
  • Papildu NLog funkciju izmantošana ASP.NET Core
  • Kā rīkoties ar kļūdām ASP.NET Web API
  • Kā ieviest globālo izņēmumu apstrādi ASP.NET Core MVC
  • Kā rīkoties ar nulles vērtībām ASP.NET Core MVC
  • Uzlabota versiju veidošana ASP.NET Core Web API
  • Kā strādāt ar darbinieku pakalpojumiem ASP.NET Core
  • Kā izmantot datu aizsardzības API ASP.NET Core
  • Kā izmantot nosacīto starpprogrammatūru ASP.NET Core
  • Kā strādāt ar sesijas stāvokli ASP.NET Core
  • Kā rakstīt efektīvus kontrollerus ASP.NET Core
$config[zx-auto] not found$config[zx-overlay] not found