找到了ASP.NET WebAPI多个操作

时间:2014-11-30 00:44:06

标签: c# asp.net asp.net-web-api

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

public class ImagesController : ApiController {
    [HttpGet]
    public HttpResponseMessage GetImages() { }

    [HttpGet]
    public HttpResponseMessage Download([FromUri]int[] ids) { }
}

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

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

更改后,从浏览器访问您的API 要么

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