在构建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>
如果您希望支持类似以下的URL:
<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中文网其他相关文章!