Προγραμματισμός

Πώς να ανακατευθύνετε ένα αίτημα στο ASP.NET Core MVC

Το ASP.NET Core είναι ένα πλατφόρμα ανοιχτού κώδικα, λιτό, γρήγορο και αρθρωτό πλαίσιο για τη δημιουργία εφαρμογών Ιστού υψηλής απόδοσης. Οι εφαρμογές ASP.NET Core MVC σάς επιτρέπουν να ανακατευθύνετε ένα αίτημα σε μια καθορισμένη διεύθυνση URL με διάφορους διαφορετικούς τρόπους. Αυτό το άρθρο μιλάει για το πώς μπορούμε να το επιτύχουμε με παραδείγματα κώδικα όπου χρειάζεται.

Για να εργαστείτε με τα παραδείγματα κώδικα που παρέχονται σε αυτό το άρθρο, θα πρέπει να έχετε εγκαταστήσει το Visual Studio 2019 στο σύστημά σας. Εάν δεν έχετε ήδη αντίγραφο, μπορείτε να κατεβάσετε το Visual Studio 2019 εδώ.

[Επίσης για: Πώς να αναπαράγετε αντικείμενα του Θεού στο C #]

Δημιουργήστε ένα έργο ASP.NET Core MVC στο Visual Studio

Αρχικά, ας δημιουργήσουμε ένα έργο ASP.NET Core στο Visual Studio 2019. Ας υποθέσουμε ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο ASP.NET Core στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "ASP.NET Core Web Application" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου", καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Προαιρετικά επιλέξτε το πλαίσιο ελέγχου "Τοποθετήστε λύση και έργο στον ίδιο κατάλογο", ανάλογα με τις προτιμήσεις σας.
  7. Κάντε κλικ στο Δημιουργία.
  8. Στο παράθυρο "Δημιουργία νέας εφαρμογής Ιστού πυρήνα ASP.NET" που εμφανίζεται στη συνέχεια, επιλέξτε .NET Core ως χρόνο εκτέλεσης και ASP.NET Core 3.1 (ή μεταγενέστερη έκδοση) από την αναπτυσσόμενη λίστα στην κορυφή.
  9. Επιλέξτε "Web Application (Model-View-Controller)" ως πρότυπο έργου για να δημιουργήσετε μια νέα εφαρμογή ASP.NET Core MVC.
  10. Βεβαιωθείτε ότι τα πλαίσια ελέγχου "Ενεργοποίηση υποστήριξης Docker" και "Διαμόρφωση για HTTPS" δεν είναι επιλεγμένα, καθώς δεν θα χρησιμοποιούμε αυτές τις δυνατότητες εδώ.
  11. Βεβαιωθείτε ότι ο Έλεγχος ταυτότητας έχει οριστεί σε "Χωρίς έλεγχο ταυτότητας", καθώς ούτε θα χρησιμοποιούμε έλεγχο ταυτότητας.
  12. Κάντε κλικ στο Δημιουργία.

Ακολουθώντας αυτά τα βήματα, θα δημιουργήσουμε ένα νέο έργο ASP.NET Core MVC στο Visual Studio 2019. Θα χρησιμοποιήσουμε αυτό το έργο στις παρακάτω ενότητες για να δείξουμε πώς μπορούμε να ανακατευθύνουμε αιτήματα όταν δουλεύουμε με μεθόδους δράσης στο ASP.NET Core 3.1.

Η ενέργεια ανακατεύθυνσης οδηγεί σε ASP.NET Core MVC

Υπάρχουν διάφοροι τύποι αποτελεσμάτων δράσης στο ASP.NET Core MVC, όπως RedirectResult, RedirectToActionResult, RedirectToRouteResult και LocalRedirectResult. Όλες αυτές οι κλάσεις επεκτείνουν την κλάση ActionResult και τις διεπαφές IActionResult και IKeepTempDataResult και βρέθηκαν (Http Status Code 302), Moved Permanently (Http Status Code 301), Temporary Redirect (Http Status Code 307) ή Permanent Redirect (Http Status Code 308 ).

Θα εξετάσουμε πώς μπορούμε να εργαστούμε με καθένα από αυτά σε αυτήν την ενότητα.

Χρησιμοποιήστε το RedirectResult στο ASP.NET Core MVC

Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις ακόλουθες μεθόδους για να επιστρέψετε ένα RedirectResult:

  • Ανακατεύθυνση - Βρέθηκε κωδικός κατάστασης HTTP 302 (μεταφέρθηκε προσωρινά στη διεύθυνση URL που παρέχεται στην κεφαλίδα της τοποθεσίας)
  • RedirectPermanent - Http Status Code 301 Μετακινήθηκε μόνιμα
  • RedirectPermanentPreserveMethod - Http Code Code 308 Μόνιμη ανακατεύθυνση
  • RedirectPreserveMethod - Http Status Code 307 Προσωρινή ανακατεύθυνση

Οι ακόλουθες γραμμές κώδικα δείχνουν πώς μπορείτε να χρησιμοποιήσετε καθεμία από αυτές τις μεθόδους.

Ανακατεύθυνση ("/ Συγγραφέας / Ευρετήριο");
RedirectPermanent ("/ Συγγραφέας / Ευρετήριο");
RedirectPermanentPreserveMethod ("/ Συγγραφέας / Ευρετήριο");
RedirectPreserveMethod ("/ Συγγραφέας / Ευρετήριο");

Εναλλακτικά, μπορείτε να επιστρέψετε μια παρουσία του RedirectResult όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.

δημόσιο ευρετήριο RedirectResult ()

{

επιστροφή νέου RedirectResult (url: "/ Author / Index", μόνιμο: true,

preserveMethod: true);

}

Σημειώστε ότι η μέθοδος ανακατεύθυνσης μπορεί να χρησιμοποιηθεί για την ανακατεύθυνση ενός αιτήματος σε μια καθορισμένη διεύθυνση URL. Αυτή η μέθοδος είναι διαθέσιμη στην αφηρημένη βασική κλάση που ονομάζεται ControllerBase.

δημόσιο ευρετήριο RedirectResult ()

{

επιστροφή ανακατεύθυνσης ("// google.com");

}

Θα πρέπει να σημειωθεί ότι οι ελεγκτές που δημιουργείτε στο ASP.NET Core MVC επεκτείνουν την κλάση Controller. Αυτή η κλάση με τη σειρά της επεκτείνει την κλάση ControllerBase και εφαρμόζει τις διεπαφές IActionFilter, IFilterMetadata, IAsyncActionFilter και IDisposable.

Χρησιμοποιήστε το RedirectToActionResult στο ASP.NET Core MVC

Αυτό το αποτέλεσμα ενέργειας μπορεί να χρησιμοποιηθεί για ανακατεύθυνση στην καθορισμένη ενέργεια και ελεγκτή. Εάν δεν έχει καθοριστεί ελεγκτής, ανακατευθύνει στην καθορισμένη ενέργεια εντός του τρέχοντος ελεγκτή. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις ακόλουθες μεθόδους για να ανακατευθύνετε στην καθορισμένη ενέργεια και να επιστρέψετε μια παρουσία του RedirectToActionResult από τη μέθοδο δράσης σας.

  • RedirectToAction - Βρέθηκε κωδικός κατάστασης Http 302 (μεταφέρθηκε προσωρινά στη διεύθυνση URL που παρέχεται στην κεφαλίδα της τοποθεσίας)
  • RedirectToActionPermanent - Http Κωδικός κατάστασης 301 Μετακινήθηκε μόνιμα
  • RedirectToActionPermanentPreserveMethod - Http Κωδικός κατάστασης 308 Μόνιμη ανακατεύθυνση
  • RedirectToActionPreserveMethod - Http Code Code 307 Προσωρινή ανακατεύθυνση

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορεί να χρησιμοποιηθεί η μέθοδος RedirectToAction.

δημόσιο ευρετήριο RedirectToActionResult ()

{

επιστροφή RedirectToAction (actionName: "Index", controllerName: "Author");

}

Μπορείτε να παραλείψετε το όνομα του ελεγκτή εάν θέλετε να ανακατευθύνετε το αίτημα σε μια μέθοδο δράσης στον τρέχοντα ελεγκτή. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορεί να επιτευχθεί αυτό.

δημόσιο ευρετήριο RedirectToActionResult ()

{

επιστροφή RedirectToAction (actionName: "Privacy");

}

Χρησιμοποιήστε το RedirectToRouteResult στο ASP.NET Core MVC

Αυτό είναι ένα ακόμη αποτέλεσμα δράσης που μπορεί να χρησιμοποιηθεί για την ανακατεύθυνση του αιτήματος στην καθορισμένη διαδρομή. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις ακόλουθες μεθόδους για να επιστρέψετε μια παρουσία του RedirectToRouteResult από τη μέθοδο δράσης σας.

  • RedirectToRoute - Http Κωδικός κατάστασης 302 Βρέθηκε (μεταφέρθηκε προσωρινά στη διεύθυνση URL που παρέχεται στην κεφαλίδα της τοποθεσίας)
  • RedirectToRoutePermanent - Http Κωδικός κατάστασης 301 Μετακινήθηκε μόνιμα
  • RedirectToRoutePermanentPreserveMethod - Http Code Code 308 Μόνιμη ανακατεύθυνση
  • RedirectToRoutePreserveMethod - Http Status Code 307 Προσωρινή ανακατεύθυνση

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορεί να χρησιμοποιηθεί η μέθοδος RedirectToRoute.

δημόσιο ευρετήριο RedirectToRouteResult ()

{

επιστροφή RedirectToRoute ("συγγραφέας");

}

Μπορείτε επίσης να καθορίσετε την τιμή της διαδρομής κατά την ανακατεύθυνση, όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.

var routeValue = νέο RouteValueDictionary

(νέο {action = "View", controller = "Author"});

επιστροφή RedirectToRoute (routeValue);

Χρησιμοποιήστε το LocalRedirectResult στο ASP.NET Core MVC

Αυτό το αποτέλεσμα ενέργειας χρησιμοποιείται όταν θέλετε να ανακατευθύνετε σε μια τοπική διεύθυνση URL. Ρίχνει ένα InvalidOperationException εάν χρησιμοποιείτε εξωτερικό URL μαζί του. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε από τις ακόλουθες μεθόδους για να επιστρέψετε μια παρουσία του LocalRedirectResult από τη μέθοδο δράσης σας.

  • LocalRedirect - Http Status Code 302 Found (μεταφέρθηκε προσωρινά στη διεύθυνση URL που παρέχεται στην κεφαλίδα της τοποθεσίας)
  • LocalRedirectPermanent - Κωδικός κατάστασης HTTP 301 Μετακινήθηκε μόνιμα
  • LocalRedirectPermanentPreserveMethod - Http Status Code 308 Μόνιμη ανακατεύθυνση
  • LocalRedirectPreserveMethod - Http Status Code 307 Προσωρινή ανακατεύθυνση

Ανακατεύθυνση σε σελίδες ξυραφιών στο ASP.NET Core MVC

Τέλος, σημειώστε ότι μπορείτε ακόμη και να ανακατευθύνετε σε σελίδες ξυραφιού χρησιμοποιώντας τη μέθοδο RedirectToPage, καθορίζοντας τη σελίδα ξυραφιού προορισμού για να ανακατευθύνετε το αίτημα. Η μέθοδος RedirectToPage επιστρέφει μια παρουσία RedirectToPageResult μαζί με έναν κωδικό κατάστασης HTTP 302.

Εάν έχετε μια σελίδα με το όνομα Συγγραφέας, όπου θέλετε να γίνει ανακατεύθυνση του αιτήματος, μπορείτε να χρησιμοποιήσετε το ακόλουθο απόσπασμα κώδικα.

δημόσια IActionResult RedirectToAuthorPage ()

{

επιστροφή RedirectToPage ("Συγγραφέας");

}

Πώς να κάνετε περισσότερα στο ASP.NET Core:

  • Τρόπος χρήσης της δρομολόγησης χαρακτηριστικών στο ASP.NET Core
  • Πώς να μεταβιβάσετε παραμέτρους σε μεθόδους δράσης στο ASP.NET Core MVC
  • Τρόπος χρήσης των Αναλυτών API στο ASP.NET Core
  • Τρόπος χρήσης διακριτικών δεδομένων διαδρομής στο ASP.NET Core
  • Πώς να χρησιμοποιήσετε την έκδοση API στο ASP.NET Core
  • Τρόπος χρήσης αντικειμένων μεταφοράς δεδομένων στο ASP.NET Core 3.1
  • Πώς να χειριστείτε 404 σφάλματα στο ASP.NET Core MVC
  • Πώς να χρησιμοποιήσετε την ένεση εξάρτησης σε φίλτρα δράσης στο ASP.NET Core 3.1
  • Πώς να χρησιμοποιήσετε το μοτίβο επιλογών στο ASP.NET Core
  • Τρόπος χρήσης δρομολόγησης τελικού σημείου στο ASP.NET Core 3.0 MVC
  • Τρόπος εξαγωγής δεδομένων στο Excel στο ASP.NET Core 3.0
  • Πώς να χρησιμοποιήσετε το LoggerMessage στο ASP.NET Core 3.0
  • Πώς να στείλετε email στο ASP.NET Core
  • Τρόπος καταγραφής δεδομένων σε SQL Server στον πυρήνα ASP.NET
  • Πώς να προγραμματίσετε εργασίες χρησιμοποιώντας το Quartz.NET στο ASP.NET Core
  • Πώς να επιστρέψετε δεδομένα από το ASP.NET Core Web API
  • Πώς να μορφοποιήσετε δεδομένα απόκρισης στο ASP.NET Core
  • Πώς να καταναλώσετε ένα ASP.NET Core Web API χρησιμοποιώντας το RestSharp
  • Πώς να εκτελέσετε λειτουργίες ασύγχυσης χρησιμοποιώντας το Dapper
  • Πώς να χρησιμοποιήσετε σημαίες χαρακτηριστικών στο ASP.NET Core
  • Τρόπος χρήσης του χαρακτηριστικού FromServices στο ASP.NET Core
  • Πώς να εργαστείτε με cookie στο ASP.NET Core
  • Πώς να εργαστείτε με στατικά αρχεία στο ASP.NET Core
  • Πώς να χρησιμοποιήσετε το Middle Rewriting URL στο ASP.NET Core
  • Πώς να εφαρμόσετε περιορισμό ρυθμού στο ASP.NET Core
  • Πώς να χρησιμοποιήσετε το Azure Application Insights στο ASP.NET Core
  • Χρήση προηγμένων δυνατοτήτων NLog στο ASP.NET Core
  • Πώς να χειριστείτε σφάλματα στο ASP.NET Web API
  • Πώς να εφαρμόσετε τον παγκόσμιο χειρισμό εξαιρέσεων στο ASP.NET Core MVC
  • Τρόπος χειρισμού μηδενικών τιμών στο ASP.NET Core MVC
  • Προηγμένη έκδοση στο ASP.NET Core Web API
  • Πώς να εργαστείτε με υπηρεσίες εργαζομένων στο ASP.NET Core
  • Τρόπος χρήσης του API προστασίας δεδομένων στο ASP.NET Core
  • Τρόπος χρήσης μεσαίου λογισμικού υπό όρους στο ASP.NET Core
  • Τρόπος εργασίας με την κατάσταση συνεδρίας στον ASP.NET Core
  • Πώς να γράψετε αποτελεσματικούς ελεγκτές στο ASP.NET Core