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

标签 .net c#-4.0 asp.net-web-api2 asp.net-web-api-routing

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

我确信我弄乱了路线,但不知道我到底做错了什么,这是 Controller 代码

[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; }

}

关于.net - 如何在 Asp.net web Api 2 中使用多个 Put 和 Post 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35424086/

相关文章:

c# - 拥有 .NET 应用程序 "remember"首选项等?

c# - Unity WebRequest 与 C++ 套接字对话

c#-4.0 - 从文本框中删除选定的文本并在 C#.NET 中输入新字符

azure - 在azure表存储的Web api响应中排除分区键和行键

.net - 使用 ninject 解决 OWIN WEB API Startup.cs 中的依赖关系

c# - 可移植类库是否支持 XmlTextReader?

c# - 编辑 WPF 应用程序中的所有标签颜色

jquery - 415 不支持的媒体类型从 $.ajax 调用 WCF 服务

c# - 我想要类似 switch 语句的东西(但当然不同)

c# - 是否可以在自定义 OWIN 中间件方法中注册依赖项?