找到了与请求匹配的多个操作?

时间:2016-08-30 20:49:42

标签: asp.net-mvc asp.net-web-api asp.net-web-api2

我是WebAPI的新手,只是探索它的默认样本“值”控制器,它与项目一起开箱即用。

我发现它已经有两个Get方法了:

      // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

我尝试使用复杂类型更改了int id,并收到“找到符合请求的多个操作

为什么它工作得很好?

我的路线是defuatl:

 routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

我使用Get方法在身体中传递一个复杂的物体,我知道这不是一种宁静的方式,但请帮助我理解它。

非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以对此问题使用ActionName注释。例如使用:

 [ActionName("IEnumerableGet")]
 public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

因此,您可以调用IEnumerableGet来调用此方法。