如何在 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; }
}
在我下面的控制器中,我有 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; }
}