我正在使用WebAPI2 . net 5创建一个控制器,将记录插入到我们的数据库中。
我想知道是否有可能传递额外的参数到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错误。
是否有解决方案?
更改操作头:
[Route("~/api/CreatePet/{training:bool}")]
public ActionResult<Pet> Create(bool training, [FromBody]Pet pet)
{
// do some if(training) logic here...
.....
}