Cara mengarahkan permintaan di ASP.NET Core MVC

ASP.NET Core adalah kerangka kerja lintas platform, sumber terbuka, ramping, cepat, dan modular untuk membangun aplikasi web berkinerja tinggi. Aplikasi ASP.NET Core MVC memungkinkan Anda untuk mengarahkan permintaan ke URL tertentu dengan beberapa cara berbeda. Artikel ini membahas tentang bagaimana kita dapat melakukannya dengan contoh kode jika sesuai.

Untuk bekerja dengan contoh kode yang disediakan dalam artikel ini, Anda harus menginstal Visual Studio 2019 di sistem Anda. Jika Anda belum memiliki salinannya, Anda dapat mengunduh Visual Studio 2019 di sini. 

[Juga tentang: Cara merefaktor objek Dewa di C #]

Membuat proyek ASP.NET Core MVC di Visual Studio

Pertama, mari buat proyek ASP.NET Core di Visual Studio 2019. Dengan asumsi Visual Studio 2019 diinstal di sistem Anda, ikuti langkah-langkah yang diuraikan di bawah ini untuk membuat proyek ASP.NET Core baru di Visual Studio.

  1. Luncurkan Visual Studio IDE.
  2. Klik "Buat proyek baru".
  3. Di jendela "Buat proyek baru", pilih "Aplikasi Web Inti ASP.NET" dari daftar templat yang ditampilkan.
  4. Klik Next.
  5. Di jendela "Configure your new project", tentukan nama dan lokasi untuk proyek baru tersebut.
  6. Secara opsional, centang kotak "Tempatkan solusi dan proyek dalam direktori yang sama", bergantung pada preferensi Anda.
  7. Klik Buat.
  8. Di jendela "Buat Aplikasi Web ASP.NET Core Baru" yang ditampilkan berikutnya, pilih .NET Core sebagai runtime dan ASP.NET Core 3.1 (atau yang lebih baru) dari daftar drop-down di bagian atas.
  9. Pilih "Aplikasi Web (Model-View-Controller)" sebagai template proyek untuk membuat aplikasi ASP.NET Core MVC baru. 
  10. Pastikan kotak centang "Aktifkan Dukungan Docker" dan "Konfigurasi untuk HTTPS" tidak dicentang karena kami tidak akan menggunakan fitur tersebut di sini.
  11. Pastikan Autentikasi disetel ke "Tanpa Autentikasi" karena kami juga tidak akan menggunakan autentikasi.
  12. Klik Buat.

Mengikuti langkah-langkah ini akan membuat proyek ASP.NET Core MVC baru di Visual Studio 2019. Kami akan menggunakan proyek ini di bagian di bawah ini untuk menggambarkan bagaimana kami dapat mengarahkan permintaan saat bekerja dengan metode tindakan di ASP.NET Core 3.1.

Tindakan pengalihan menghasilkan ASP.NET Core MVC

Ada beberapa jenis hasil tindakan di ASP.NET Core MVC seperti RedirectResult, RedirectToActionResult, RedirectToRouteResult, dan LocalRedirectResult. Semua kelas ini memperluas kelas ActionResult dan antarmuka IActionResult dan IKeepTempDataResult dan mengembalikan Ditemukan (Kode Status Http 302), Dipindahkan Secara Permanen (Kode Status Http 301), Pengalihan Sementara (Kode Status Http 307), atau Pengalihan Permanen (Kode Status Http 308 ).

Kami akan memeriksa bagaimana kami dapat bekerja dengan masing-masing ini di bagian ini.

Gunakan RedirectResult di ASP.NET Core MVC

Anda dapat menggunakan salah satu metode berikut untuk mengembalikan RedirectResult:

  • Redirect - Kode Status Http 302 Ditemukan (dipindahkan sementara ke URL yang disediakan di tajuk lokasi)
  • RedirectPermanent - Kode Status Http 301 Dipindahkan Secara Permanen
  • RedirectPermanentPreserveMethod - Kode Status Http 308 Pengalihan Permanen
  • RedirectPreserveMethod - Kode Status Http 307 Pengalihan Sementara

Baris kode berikut menunjukkan bagaimana Anda dapat menggunakan masing-masing metode ini.

Pengalihan ("/ Penulis / Indeks");
RedirectPermanent ("/ Penulis / Indeks");
RedirectPermanentPreserveMethod ("/ Penulis / Indeks");
RedirectPreserveMethod ("/ Penulis / Indeks");

Atau, Anda dapat mengembalikan instance RedirectResult seperti yang ditunjukkan dalam cuplikan kode yang diberikan di bawah ini.

publik RedirectResult Index ()

{

   kembalikan RedirectResult baru (url: "/ Author / Index", permanen: true,

                             preservMethod: true);

}

Perhatikan bahwa metode Redirect dapat digunakan untuk mengarahkan permintaan ke URL yang ditentukan. Metode ini tersedia di kelas dasar abstrak yang disebut ControllerBase.

publik RedirectResult Index ()

{

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

}

Perlu dicatat bahwa pengontrol yang Anda buat di ASP.NET Core MVC memperluas kelas Controller. Kelas ini pada gilirannya memperluas kelas ControllerBase dan mengimplementasikan antarmuka IActionFilter, IFilterMetadata, IAsyncActionFilter, dan IDisposable.

Gunakan RedirectToActionResult di ASP.NET Core MVC

Hasil tindakan ini dapat digunakan untuk mengarahkan ke tindakan dan pengontrol yang ditentukan. Jika tidak ada pengontrol yang ditentukan, pengontrol mengarahkan ke tindakan yang ditentukan dalam pengontrol saat ini. Anda dapat menggunakan salah satu metode berikut untuk mengalihkan ke tindakan yang ditentukan dan mengembalikan instance RedirectToActionResult dari metode tindakan Anda.

  • RedirectToAction - Kode Status Http 302 Ditemukan (dipindahkan sementara ke URL yang disediakan di tajuk lokasi)
  • RedirectToActionPermanent - Kode Status Http 301 Dipindahkan Secara Permanen
  • RedirectToActionPermanentPreserveMethod - Kode Status Http 308 Pengalihan Permanen
  • RedirectToActionPreserveMethod - Kode Status Http 307 Pengalihan Sementara

Cuplikan kode berikut menggambarkan bagaimana metode RedirectToAction dapat digunakan.

publik RedirectToActionResult Index ()

{

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

}

Anda dapat melewati nama pengontrol jika Anda ingin mengarahkan permintaan ke metode tindakan di pengontrol saat ini. Potongan kode berikut menunjukkan bagaimana ini dapat dicapai.

publik RedirectToActionResult Index ()

{

   return RedirectToAction (actionName: "Privacy");

}

Gunakan RedirectToRouteResult di ASP.NET Core MVC

Ini adalah hasil tindakan lain yang dapat digunakan untuk mengarahkan permintaan ke rute yang ditentukan. Anda dapat menggunakan salah satu metode berikut untuk mengembalikan instance RedirectToRouteResult dari metode tindakan Anda.

  • RedirectToRoute - Kode Status Http 302 Ditemukan (dipindahkan sementara ke URL yang disediakan di tajuk lokasi)
  • RedirectToRoutePermanent - Kode Status Http 301 Dipindahkan Secara Permanen
  • RedirectToRoutePermanentPreserveMethod - Kode Status Http 308 Pengalihan Permanen
  • RedirectToRoutePreserveMethod - Kode Status Http 307 Pengalihan Sementara

Cuplikan kode berikut menunjukkan bagaimana metode RedirectToRoute dapat digunakan.

publik RedirectToRouteResult Index ()

{

    return RedirectToRoute ("author");

}

Anda juga dapat menentukan nilai rute saat mengarahkan seperti yang ditunjukkan dalam potongan kode yang diberikan di bawah ini.

var routeValue = new RouteValueDictionary

 (baru {action = "View", controller = "Author"});

return RedirectToRoute (routeValue);

Gunakan LocalRedirectResult di ASP.NET Core MVC

Hasil tindakan ini digunakan saat Anda ingin mengarahkan ke URL lokal. Itu melempar InvalidOperationException jika Anda menggunakan URL eksternal dengannya. Anda dapat menggunakan salah satu metode berikut untuk mengembalikan instance LocalRedirectResult dari metode tindakan Anda.

  • LocalRedirect - Kode Status Http 302 Ditemukan (dipindahkan sementara ke URL yang disediakan di tajuk lokasi)
  • LocalRedirectPermanent - Kode Status Http 301 Dipindahkan Secara Permanen
  • LocalRedirectPermanentPreserveMethod - Kode Status Http 308 Pengalihan Permanen
  • LocalRedirectPreserveMethod - Kode Status Http 307 Pengalihan Sementara

Alihkan ke halaman pisau cukur di ASP.NET Core MVC

Terakhir, perhatikan bahwa Anda bahkan dapat mengalihkan ke halaman pisau cukur menggunakan metode RedirectToPage, menentukan halaman pisau cukur target untuk mengalihkan permintaan. Metode RedirectToPage mengembalikan instance RedirectToPageResult bersama dengan Kode Status HTTP 302.

Jika Anda memiliki halaman bernama Penulis, tempat Anda ingin permintaan dialihkan, Anda dapat menggunakan cuplikan kode berikut.

publik IActionResult RedirectToAuthorPage ()

{

    return RedirectToPage ("Penulis");

}

Cara melakukan lebih banyak di ASP.NET Core:

  • Cara menggunakan perutean atribut di ASP.NET Core
  • Cara meneruskan parameter ke metode tindakan di ASP.NET Core MVC
  • Cara menggunakan Penganalisis API di ASP.NET Core
  • Cara menggunakan token data rute di ASP.NET Core
  • Cara menggunakan versi API di ASP.NET Core
  • Cara menggunakan Objek Transfer Data di ASP.NET Core 3.1
  • Cara menangani kesalahan 404 di ASP.NET Core MVC
  • Cara menggunakan injeksi ketergantungan dalam tindakan filter di ASP.NET Core 3.1
  • Cara menggunakan pola opsi di ASP.NET Core
  • Cara menggunakan perutean titik akhir di ASP.NET Core 3.0 MVC
  • Cara mengekspor data ke Excel di ASP.NET Core 3.0
  • Cara menggunakan LoggerMessage di ASP.NET Core 3.0
  • Cara mengirim email di ASP.NET Core
  • Cara memasukkan data ke SQL Server di ASP.NET Core
  • Cara menjadwalkan pekerjaan menggunakan Quartz.NET di ASP.NET Core
  • Cara mengembalikan data dari ASP.NET Core Web API
  • Cara memformat data respons di ASP.NET Core
  • Cara menggunakan ASP.NET Core Web API menggunakan RestSharp
  • Cara melakukan operasi asinkron menggunakan Dapper
  • Cara menggunakan tanda fitur di ASP.NET Core
  • Cara menggunakan atribut FromServices di ASP.NET Core
  • Cara bekerja dengan cookie di ASP.NET Core
  • Cara bekerja dengan file statis di ASP.NET Core
  • Cara menggunakan URL Rewriting Middleware di ASP.NET Core
  • Cara menerapkan pembatasan laju di ASP.NET Core
  • Cara menggunakan Azure Application Insights di ASP.NET Core
  • Menggunakan fitur NLog lanjutan di ASP.NET Core
  • Bagaimana menangani kesalahan di ASP.NET Web API
  • Bagaimana menerapkan penanganan pengecualian global di ASP.NET Core MVC
  • Bagaimana menangani nilai null di ASP.NET Core MVC
  • Versi lanjutan dalam ASP.NET Core Web API
  • Cara bekerja dengan layanan pekerja di ASP.NET Core
  • Cara menggunakan API Perlindungan Data di ASP.NET Core
  • Cara menggunakan middleware bersyarat di ASP.NET Core
  • Cara bekerja dengan status sesi di ASP.NET Core
  • Cara menulis pengontrol yang efisien di ASP.NET Core