Penghalaan berbilang parameter dalam ASP.NET MVC
Apabila mencipta API menggunakan ASP.NET MVC, anda selalunya perlu menghantar berbilang parameter kepada kaedah tindakan untuk mendapatkan atau memanipulasi data. Artikel ini meneroka cara untuk mencapai ini menggunakan mekanisme penghalaan yang disediakan oleh MVC.
Gunakan rentetan pertanyaan untuk menghantar parameter
Secara lalai, MVC menyokong menghantar parameter kepada kaedah tindakan melalui rentetan pertanyaan. URL yang disediakan dalam soalan, serupa dengan yang di bawah, menggunakan pendekatan ini:
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026</code>
Dalam MVC, pengawal sepadan dengan "artis", tindakan sepadan dengan "getImages", dan parameter rentetan pertanyaan "artis" dan "api_key" diisi secara automatik ke dalam parameter kaedah tindakan.
Peraturan penghalaan tersuai
Walaupun MVC menyokong parameter asas melalui rentetan pertanyaan, ia juga membenarkan peraturan penghalaan tersuai. Ini memberikan fleksibiliti yang lebih besar apabila berurusan dengan corak URL yang lebih kompleks.
Peraturan penghalaan ditakrifkan dalam fail global.asax dan mengikut format tertentu. Secara lalai, mereka mengikut corak berikut:
<code>routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带参数的 URL new { controller = "Home", action = "Index", id = "" } // 参数默认值 );</code>
Untuk menyokong corak URL seperti "/Artist/GetImages/cher/api-key" laluan baharu boleh ditambah:
<code>routes.MapRoute( "ArtistImages", // 路由名称 "{controller}/{action}/{artistName}/{apikey}", // 带参数的 URL new { controller = "Home", action = "Index", artistName = "", apikey = "" } // 参数默认值 );</code>
Dalam kes ini, teg "{artistName}" dan "{apikey}" akan diisi daripada laluan URL dan parameter "artistName" dan "apikey" dalam kaedah tindakan akan diisi dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Pelbagai Parameter dalam ASP.NET MVC Routing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!