Javascript 向Web API发送参数时,参数值设置为0

Javascript 向Web API发送参数时,参数值设置为0,javascript,c#,asp.net-core,asp.net-core-webapi,Javascript,C#,Asp.net Core,Asp.net Core Webapi,我有一个函数可以像这样调用API async addOffDayReplacement(employeeId: string, days: number) { console.log(days); await Axios.post('/api/v1/leaveQuota/' + employeeId, { params: { additionalDays: days } }); } 还有API [HttpPost(

我有一个函数可以像这样调用API

async addOffDayReplacement(employeeId: string, days: number) {
    console.log(days);
    await Axios.post('/api/v1/leaveQuota/' + employeeId, {
        params: {
            additionalDays: days
        }
    });
}
还有API

[HttpPost("{id}")]
public async Task<ActionResult<bool>> Update(string id, int additionalDays)
{
    await leaveService.AddReplacement(id, additionalDays);
    return true;
}
[HttpPost({id}”)]
公共异步任务更新(字符串id,int additionalDays)
{
等待离开服务。添加替换(id,额外天数);
返回true;
}
但是,即使我从服务发送的值不是0,API中的
附加天数始终为0


有人知道为什么吗?如何解决这个问题?

您需要指定绑定源,即您的函数如何访问它/参数如何传递(正文、查询等),因此使用

[FromBody]int额外天数

应该给你修一下

stringid
之所以有效,是因为您在
[HttpPost(“{id}”)]
中指定了它


我建议查看更多详细信息和示例。

使用对象作为包含AdditionalDays属性的第二个参数。用[FromBody]注释该参数

[HttpPost("{id}")]
public async Task<ActionResult<bool>> Update(string id, [FromBody] Model model)
{
    await leaveService.AddReplacement(id, model.AdditionalDays);
    return true;
}
[HttpPost({id}”)]

公共异步任务

因为它是一个POST请求,你的意思是
[FromBody]
?@phuzi很好的捕获,修复了它我在这里发布之前尝试过它。如果我使用[frombody],我会得到错误400,我想你忘记了
[frombody]
注释谢谢你的提示@ChrisSatchell。刚刚更新了答案。谢谢。。我刚刚意识到,因为我收到了“application/json”,所以我无法收到单个int参数。模型和接口javascript中的变量名应该相同