ASP.NET WebAPI 中发现了多个操作

本文关键字:操作 发现 NET WebAPI ASP | 更新日期: 2023-09-27 18:32:25

我有一个 web api 控制器和两个 GET 方法:

public class ImagesController : ApiController {
    [HttpGet]
    public HttpResponseMessage GetImages() { }
    [HttpGet]
    public HttpResponseMessage Download([FromUri]int[] ids) { }
}

为什么我在尝试访问/api/Images 时收到多个操作找到错误,为什么两个操作相同?

ASP.NET WebAPI 中发现了多个操作

创建控制器时,已将HttpGet分配给两种不同的方法。当您尝试处理您的请求时,您会混淆Web服务器。由于您GET动词发送到它自己的控制器,而不是直接发送到该方法,因此 Web 服务器无法确定应该调用哪个方法。

您可以尝试使用/api/Images/GetImages以直接命中某个方法,或删除列出的方法之一。

如果您看到 Web API 功能,它适用于选定的 httm 方法,如 GET、PUT、POST、DELETE。

因此,如果您创建两个具有相同名称的操作方法,它将给出错误。若要避免此错误,必须在 route.config 文件中重新定义 DefaultAPI 路径。

将其更改为API/{控制器}.....

更改此设置后,可以从浏览器访问您的 API,例如或

如果这样可以解决您的问题,请标记为答案。