首頁 >後端開發 >C++ >如何有效率地將多個參數傳遞給 ASP.NET MVC Action 方法?

如何有效率地將多個參數傳遞給 ASP.NET MVC Action 方法?

DDD
DDD原創
2025-01-16 23:19:12749瀏覽

How to Efficiently Pass Multiple Parameters to ASP.NET MVC Action Methods?

ASP.NET MVC 多參數路由詳解

在建立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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn