在ASP.NET Core 3.1的HTTP Post请求中,如果从[FromBody]注解中获取到null,可能是由于以下几种原因:
请求的Content-Type不正确:确保请求的Content-Type设置为"application/json",因为[FromBody]只能处理JSON格式的请求。可以通过在请求头中添加"Content-Type: application/json"来设置。
请求体不包含有效的JSON数据:确保请求体中包含有效的JSON数据,如果请求体为空或格式不正确,[FromBody]将会接收到null。可以通过在请求体中添加有效的JSON数据来测试。
以下是一个示例解决方案:
确保请求的Content-Type正确设置为"application/json"。可以使用Postman或类似的工具发送请求,并在请求头中添加"Content-Type: application/json"。
确保请求体中包含有效的JSON数据。例如,发送以下JSON数据作为请求体:
{
"name": "John",
"age": 30
}
[HttpPost]
public IActionResult Post([FromBody] MyModel model)
{
if (model == null)
{
return BadRequest("Invalid JSON data");
}
// 处理model对象
return Ok();
}
确保你的模型类(MyModel)与请求体中的JSON数据相匹配。
通过以上步骤,你应该能够在ASP.NET Core 3.1的HTTP Post请求中成功接收到[FromBody]的数据,而不是null。