Soalan:
Bagaimana untuk menghantar berbilang parameter kepada kaedah tindakan dalam ASP.NET MVC, dengan mengambil kira format panggilan API berikut?
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026</code>
Jawapan:
MVC menyokong hantaran berbilang parameter dengan menambahkan parameter secara langsung dalam parameter kaedah tindakan. Sebagai contoh, pertimbangkan kaedah tindakan berikut:
<code>public ActionResult GetImages(string artistName, string apiKey)</code>
MVC mengisi parameter secara automatik apabila disediakan dengan URL dalam format berikut:
<code>/Artist/GetImages/?artistName=cher&apiKey=XXX</code>
Untuk parameter bernama "id", anda boleh meletakkannya di laluan dan bukannya rentetan pertanyaan, seperti ini:
<code>public ActionResult GetImages(string id, string apiKey)</code>
Kaedah ini akan mengisi dengan betul melalui URL berikut:
<code>/Artist/GetImages/cher?apiKey=XXX</code>
Selain itu, peraturan penghalaan yang boleh disesuaikan membenarkan senario yang lebih kompleks. Dalam fail global.asax, anda boleh mentakrifkan semula peraturan penghalaan yang digunakan oleh MVC. Peraturan lalai adalah seperti berikut:
<code>routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带参数的 URL new { controller = "Home", action = "Index", id = "" } // 参数默认值 );</code>
Untuk URL seperti /Artist/GetImages/cher/api-key, anda boleh menambah laluan berikut:
<code>routes.MapRoute( "ArtistImages", // 路由名称 "{controller}/{action}/{artistName}/{apikey}", // 带参数的 URL new { controller = "Home", action = "Index", artistName = "", apikey = "" } // 参数默认值 );</code>
Ini akan membenarkan penggunaan kaedah tindakan yang serupa dengan contoh pertama.
Atas ialah kandungan terperinci Bagaimana untuk Lulus Berbilang Parameter ke Kaedah Tindakan ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!