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