检查所发送的POST请求的数据是否正确。可能是数据格式不正确,导致服务器不接受请求。可以使用Postman等工具模拟请求进行测试。
确认ASP.Net Core MVC的模型绑定是否正确。如果模型绑定有误,那么服务器也可能会返回错误400 Bad Request。
首先,在类中添加[ApiController]属性,如下所示:
[ApiController] public class MyController : Controller { ... }
然后,对应的Action中加上[FromBody]关键字,如下所示:
[HttpPost] public IActionResult MyAction([FromBody] MyDataModel myDataModel) { ... }
注意事项: 在进行Post请求时,数据必须以“application/json”或“application/x-www-form-urlencoded”格式进行发送。同时,使用[FromBody]关键字时,自定义的数据类型必须是可以从RequestBody中反序列化的。如果报错“Unable to cast object of type 'System.String' to type 'MyDataModel'”,则需要在MyDataModel中增加注解[JsonIgnoreProperties(ignoreUnknown: true)]。此外,在IIS Manager中,需要将Handler Mappings中aspNetCore的CDN重设为aspNetCore,否则会出现错误400。