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 时收到多个操作找到错误,为什么两个操作相同?
创建控制器时,已将HttpGet
分配给两种不同的方法。当您尝试处理您的请求时,您会混淆Web服务器。由于您GET
动词发送到它自己的控制器,而不是直接发送到该方法,因此 Web 服务器无法确定应该调用哪个方法。
您可以尝试使用/api/Images/GetImages
以直接命中某个方法,或删除列出的方法之一。
如果您看到 Web API 功能,它适用于选定的 httm 方法,如 GET、PUT、POST、DELETE。
因此,如果您创建两个具有相同名称的操作方法,它将给出错误。若要避免此错误,必须在 route.config 文件中重新定义 DefaultAPI 路径。
将其更改为API/{控制器}.....
更改此设置后,可以从浏览器访问您的 API,例如或
如果这样可以解决您的问题,请标记为答案。