我一定缺少一些非常基本的东西,我无法理解它是什么。 我在控制器上有一个方法
[Route("SomeMethod")]
[HttpPost]
public IActionResult SomeMethod([FromBody]int interval)
{
...
}
并且 im 与邮递员 post 请求{"interval": 2000 }
,控制器处的间隔未初始化。如果我将方法参数更改为对象,我会得到ValueKind = Object : "{"interval": 2000 }"
我也尝试了参数是字符串然后我发送的主体是{"interval": "2000" }
,并且在控制器上我得到 null
基于这个问题,我尝试了:
[Route("SomeMethod")]
[HttpPost]
public IActionResult SomeMethod([FromBody]JsonElement interval)
{
...
}
并得到了ValueKind = Undefined : ""
在主计长处,而且:
services.AddControllers()
.AddNewtonsoftJson();
当方法需要 int 并得到 0
根据文档,您必须按原样在请求正文中传递它,只是一个值,没有属性名称。但是不可能绑定多个参数。无论如何,我建议使用适当的对象来绑定正文参数。
[Route("SomeMethod")]
[HttpPost]
public IActionResult SomeMethod([FromBody]Request request)
{
return Ok();
}
public class Request
{
public int Interval { get; set; }
}