在建立ASP.NET MVC API的過程中,您可能會遇到API端點需要多個參數的情況。例如,使用包含"artist"和"api_key"參數的範例URL時,您可能不清楚如何在MVC中將這些參數傳遞給您的操作方法。
傳遞參數給操作方法
在MVC中,只需將參數新增為方法參數,即可輕鬆地將參數傳遞給操作方法。例如,給定一個操作:
<code class="language-csharp">public ActionResult GetImages(string artistName, string apiKey)</code>
當提供類似以下URL時,MVC將無縫填充這些參數:
<code>/Artist/GetImages/?artistName=cher&apiKey=XXX</code>
處理名為「ID」的參數
MVC為名為「id」的參數提供了一個獨特的功能。任何具有此名稱的參數都可以直接放置在路徑中,而不是查詢字串中。因此,像這樣的方法:
<code class="language-csharp">public ActionResult GetImages(string id, string apiKey)</code>
可以使用類似以下的URL正確填充:
<code>/Artist/GetImages/cher?apiKey=XXX</code>
自訂路由規則
對於更複雜的情況,您可以自訂MVC用於查找操作的路由規則。 global.asax檔案包含可以修改的路由規則。預設情況下,規則定義為:
<code class="language-csharp">routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带参数的URL new { controller = "Home", action = "Index", id = "" } // 参数默认值 );</code>
如果您希望支援類似以下的網址:
<code>/Artist/GetImages/cher/api-key</code>
您可以新增一條額外的路由規則,例如:
<code class="language-csharp">routes.MapRoute( "ArtistImages", // 路由名称 "{controller}/{action}/{artistName}/{apikey}", // 带参数的URL new { controller = "Home", action = "Index", artistName = "", apikey = "" } // 参数默认值 );</code>
透過這樣做,您可以使用前面提供的範例方法。
以上是如何有效率地將多個參數傳遞給 ASP.NET MVC Action 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!