【问题标题】:WebApi POST with additional parameters带有附加参数的 WebApi POST
【发布时间】:2021-02-09 15:11:02
【问题描述】:

我正在使用 WebAPI2 .NET5 创建一个控制器,将记录插入我们的数据库。

我想知道是否可以将附加参数传递给 HttpPOST 方法? 我特别想传递一个布尔值以及有效负载对象来操纵对象在数据库中的持久化方式(我们有两个不同的数据库,一个用于训练,另一个用于生产)

MSDN 对 POST 方法签名的定义如下:

[HttpPost]
public ActionResult<Pet> Create([FromBody]Pet pet)
{
    .....
}

为此,我尝试使用以下签名创建端点:

[HttpPost("CreatePet/{training:bool}")]
public ActionResult<Pet> Create(bool training, [FromBody]Pet pet)
{
    // do some if(training) logic here...
    .....
}

我这里的想法是请求的 URL 会变成

baseAddress + "/CreatePet/{training}"
e.g.
http://localhost:500/api/CreatePet/true

现在,如上所述使用 HttpClient 的 PostAsync 方法调用端点会产生 404 not found 错误。

这种情况有解决方案吗?

【问题讨论】:

    标签: c# asp.net-core-webapi asp.net-web-api-routing


    【解决方案1】:

    更改您的操作标题:

    [Route("~/api/CreatePet/{training:bool}")]
    public ActionResult<Pet> Create(bool training, [FromBody]Pet pet)
    {
        // do some if(training) logic here...
        .....
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-06
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多