Javascript 向Web API发送参数时,参数值设置为0
我有一个函数可以像这样调用APIJavascript 向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(
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中的变量名应该相同