ASP.NET MVC 中的多參數路由詳解
在設計基於 ASP.NET MVC 的 RESTful API 時,經常需要向控制器操作方法傳遞多個參數。本文將探討如何處理這種情況,並詳細解釋可用的方法。
使用查詢字串傳遞參數
預設情況下,MVC 會自動將查詢字串參數對應到操作方法的參數。考慮以下操作方法:
<code class="language-csharp">public ActionResult GetImages(string artist, string apiKey)</code>
類似這樣的 HTTP 請求:
<code>http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=my_key</code>
會在呼叫 GetImages 操作時填入 artist 和 apiKey 參數。
“id” 參數的特殊情況
名為「id」的參數可以包含在 URL 路徑中,而不是查詢字串中。例如,以下操作:
<code class="language-csharp">public ActionResult GetImages(string id, string apiKey)</code>
可以使用以下 URL 呼叫:
<code>http://ws.audioscrobbler.com/2.0/Artist/GetImages/cher?api_key=my_key</code>
自訂路由規則
對於更複雜的情況,MVC 提供了自訂路由規則以查找操作的靈活性。在 global.asax 檔案中,編輯 routes.MapRoute 方法,該方法指定預設路由模式。
範例:特定參數的自訂路由
為了處理類似這樣的 URL:
<code>http://ws.audioscrobbler.com/2.0/Artist/GetImages/cher/my_key</code>
可以新增以下路由:
<code class="language-csharp">routes.MapRoute( "ArtistImages", "{controller}/{action}/{artistName}/{apiKey}", new { controller = "Artist", action = "GetImages", artistName = "", apiKey = "" } );</code>
使用此自訂路由,GetImages 操作將被調用,artistName 和 apiKey 參數將從 URL 段填入。
以上是如何在 ASP.NET MVC 中路由多個參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!