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中文网其他相关文章!