Kerangka MVC - Mesin Perutean

ASP.NET MVC Routing memungkinkan penggunaan URL yang deskriptif tindakan pengguna dan lebih mudah dipahami oleh pengguna. Pada saat yang sama, Perutean dapat digunakan untuk menyembunyikan data yang tidak dimaksudkan untuk ditampilkan kepada pengguna akhir.

Misalnya, dalam aplikasi yang tidak menggunakan perutean, pengguna akan ditampilkan URL sebagai http: //myapplication/Users.aspx? Id = 1 yang akan sesuai dengan file Users.aspx di dalam jalur aplikasi saya dan mengirim ID sebagai 1 , Umumnya, kami tidak ingin menampilkan nama file seperti itu kepada pengguna akhir kami.

Untuk menangani URL MVC, platform ASP.NET menggunakan sistem perutean, yang memungkinkan Anda membuat pola URL apa pun yang Anda inginkan, dan mengekspresikannya dengan cara yang jelas dan ringkas. Setiap rute di MVC berisi pola URL tertentu. Pola URL ini dibandingkan dengan URL permintaan masuk dan jika URL cocok dengan pola ini, ini digunakan oleh mesin perutean untuk memproses permintaan lebih lanjut.

Format URL Perutean MVC

Untuk memahami perutean MVC, pertimbangkan URL berikut -

http://servername/Products/Phones

Pada URL di atas, Produk adalah segmen pertama dan Telepon adalah segmen kedua yang dapat diekspresikan dalam format berikut -

{controller}/{action}

Kerangka MVC secara otomatis menganggap segmen pertama sebagai nama Kontroler dan segmen kedua sebagai salah satu tindakan di dalam Kontroler itu.

Note- Jika nama Pengontrol Anda adalah ProductsController, Anda hanya akan menyebutkan Produk di URL perutean. Framework MVC secara otomatis memahami akhiran Controller.

Buat Rute Sederhana

Rute ditentukan dalam file RouteConfig.cs yang ada di bawah folder proyek App_Start.

Anda akan melihat kode berikut di dalam file ini -

public class RouteConfig { 
   
   public static void RegisterRoutes(RouteCollection routes) { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  
      
      routes.MapRoute( 
         name: "Default", 
         url: "{controller}/{action}/{id}", 
         defaults: new { controller = "Home", action = "Index", 
            id = UrlParameter.Optional } 
      ); 
   } 
}

Metode RegisterRoutes ini dipanggil oleh Global.ascx saat aplikasi dimulai. Metode Application_Start di bawah Global.ascx memanggil fungsi MapRoute ini yang menetapkan Controller default dan aksinya (metode di dalam kelas Controller).

Untuk mengubah pemetaan default di atas sesuai contoh kita, ubah baris kode berikut -

defaults: new { controller = "Products", action = "Phones", id = UrlParameter.Optional }

Pengaturan ini akan memilih ProductsController dan memanggil metode Telepon di dalamnya. Demikian pula, jika Anda memiliki metode lain seperti Electronics di dalam ProductsController, URL-nya adalah -

http://servername/Products/Electronics