首页 >后端开发 >C++ >如何将多个参数传递给 ASP.NET MVC 操作方法?

如何将多个参数传递给 ASP.NET MVC 操作方法?

DDD
DDD原创
2025-01-16 23:04:17774浏览

How to Pass Multiple Parameters to an ASP.NET MVC Action Method?

ASP.NET MVC 中的多参数路由

问题:

如何将多个参数传递给 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn