ASP.NET 核心 MVC 控制器未绑定
ASP.NET Core MVC controller not binding
正在执行从提取 api 到端点的请求,并且道具未绑定。
端点上的 id 和 fileName 分别为 0 和 null。
我的抓取:
fetch(`https://localhost:44343/items/edit`, {
method: 'POST',
mode: 'cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id:123,
fileName:"asd"
})
})
.then(response => console.log(response))
.catch(error => console.error('Unable to update item.', error));
我的终点:
[HttpPost]
public async Task<IActionResult> Edit([FromBody]int id, string fileName)
{
return Ok(id);
}
请求负载显示正在发送值:
我试过使用和不使用 [FromBody]
显式添加到操作的路由,更改为 PUT 而不是 POST(为什么更新操作的默认值是POST??)
还有什么我可以尝试的吗?
创建一个 class 来表示 json 结构:
public class Request
{
public int id {get; set;}
string fileName {get; set;}
}
并在行动中接受它:
public async Task<IActionResult> Edit(Request r)
{
// use r
}
如前一条评论所述,创建一个对象模型来表示 json
public class Request
{
public int Id {get;set;}
public string FileName {get;set;}
}
在您的控制器操作方法中
[HttpPost]
[Route("items/edit")]
public IActionResult Edit([FromBody] Request req)
{
return Ok();
}
正在执行从提取 api 到端点的请求,并且道具未绑定。
端点上的 id 和 fileName 分别为 0 和 null。
我的抓取:
fetch(`https://localhost:44343/items/edit`, {
method: 'POST',
mode: 'cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id:123,
fileName:"asd"
})
})
.then(response => console.log(response))
.catch(error => console.error('Unable to update item.', error));
我的终点:
[HttpPost]
public async Task<IActionResult> Edit([FromBody]int id, string fileName)
{
return Ok(id);
}
请求负载显示正在发送值:
我试过使用和不使用 [FromBody]
显式添加到操作的路由,更改为 PUT 而不是 POST(为什么更新操作的默认值是POST??)
还有什么我可以尝试的吗?
创建一个 class 来表示 json 结构:
public class Request
{
public int id {get; set;}
string fileName {get; set;}
}
并在行动中接受它:
public async Task<IActionResult> Edit(Request r)
{
// use r
}
如前一条评论所述,创建一个对象模型来表示 json
public class Request
{
public int Id {get;set;}
public string FileName {get;set;}
}
在您的控制器操作方法中
[HttpPost]
[Route("items/edit")]
public IActionResult Edit([FromBody] Request req)
{
return Ok();
}