問題:
如何將多個參數傳遞給 ASP.NET MVC 中的動作方法,考慮到以下 API 呼叫格式?
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026</code>
解答:
MVC 透過直接在動作方法參數中新增參數來支援多參數傳遞。例如,考慮以下動作方法:
<code>public ActionResult GetImages(string artistName, string apiKey)</code>
當提供類似以下格式的 URL 時,MVC 會自動填入參數:
<code>/Artist/GetImages/?artistName=cher&apiKey=XXX</code>
對於名為「id」的參數,可以將其放在路徑中,而不是查詢字串中,如下所示:
<code>public ActionResult GetImages(string id, string apiKey)</code>
此方法將透過以下 URL 正確填入:
<code>/Artist/GetImages/cher?apiKey=XXX</code>
此外,可自訂的路由規則允許更複雜的場景。在 global.asax 檔案中,您可以重新定義 MVC 所使用的路由規則。預設規則如下:
<code>routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带参数的 URL new { controller = "Home", action = "Index", id = "" } // 参数默认值 );</code>
對於類似 /Artist/GetImages/cher/api-key 的 URL,您可以新增以下路由:
<code>routes.MapRoute( "ArtistImages", // 路由名称 "{controller}/{action}/{artistName}/{apikey}", // 带参数的 URL new { controller = "Home", action = "Index", artistName = "", apikey = "" } // 参数默认值 );</code>
這將允許使用類似於第一個範例的動作方法。
以上是如何將多個參數傳遞給 ASP.NET MVC 操作方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!