如何在 Asp.net web Api 2 中使用多个 Put 和 Post 方法

How to work with multiple Put and Post methods in Asp.net web Api 2

在我下面的控制器中,我有 2 种使用 Put 和 Patch 动词的方法,我想在不同的时间调用它们,正如你所看到的,我正在尝试传递 json objectt 但是当我 运行 项目并尝试调用 api 我收到此错误 “找到多个与请求匹配的操作

我确定我弄乱了路线,但不知道我到底哪里做错了,这是控制器代码

[ApiVersion1RoutePrefix("tests")]
public class TestController : ApiController
{


       [Route("{}", Name = "PackageDropOffLocation")]
    [HttpPut]
    [HttpPatch]
    public IHttpActionResult PackageDropOffLocation(HttpRequestMessage, PackageDropOffLocationRequest packageDropOffLocationRequest)
    {
        return null;

    }

    [Route("", Name = "PackageOnBoard")]
    [HttpPut]
    [HttpPatch]
    public IHttpActionResult PackageBoarded(HttpRequestMessage requestMessage, PackageBoardedRequest packageBoardedRequest)
    {
        return null;
    }

}
  public class PackageBoardedRequest
{
    public string PackageId { get; set; }

}

  public class PackageDropOffLocationRequest
{
    public string Id { get; set; }
    public double Longitude { get; set; }
    public double Latitude { get; set; }

}

问题出在路由属性中:

[ApiVersion1RoutePrefix("tests")]
public class TestController : ApiController
{


    [Route("PackageDropOffLocation/{}")]
    [HttpPut]
    [HttpPatch]
    public IHttpActionResult PackageDropOffLocation(HttpRequestMessage, PackageDropOffLocationRequest packageDropOffLocationRequest)
    {
        return null;

    }

    [Route("PackageOnBoard")]
    [HttpPut]
    [HttpPatch]
    public IHttpActionResult PackageBoarded(HttpRequestMessage requestMessage, PackageBoardedRequest packageBoardedRequest)
    {
        return null;
    }

}
  public class PackageBoardedRequest
{
    public string PackageId { get; set; }

}

  public class PackageDropOffLocationRequest
{
    public string Id { get; set; }
    public double Longitude { get; set; }
    public double Latitude { get; set; }

}