。NET Core 3.0 API中发布的参数为空白

问题描述 投票:0回答:1

我创建了ASP.net core 3.0 Web API应用程序,并向其中添加了HttpPost端点。

[当我使用postman张贴到此发布端点时,该端点未获取我传递给它的JSON,而是获取了null。

。NET Core 3.0中是否已更改或更改了HTTP发布终结点端点?

我发布的JSON:

{
  "status": "0",
  "operation":"",
  "filter":"",
  "currentOrderList": [
  ]
}

控制器代码:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // GET: api/<controller>
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/<controller>/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
        return "value";
    }

    // POST api/<controller>
    [HttpPost]
    public void Post([FromBody]string value)
    {
    }

    // PUT api/<controller>/5
    [HttpPut("{id}")]
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/<controller>/5
    [HttpDelete("{id}")]
    public void Delete(int id)
    {
    }
}

我要发布的网址是https://localhost:44336/api/values。我可以看到在Visual Studio调试过程中该方法被命中的事实打击了端点。唯一的问题是参数以空值形式出现

c# http-post visual-studio-2019 asp.net-core-3.0
1个回答
0
投票

创建模型以匹配给定数据

public class MyClass {
    [JsonProperty("status")]
    public int Status { get; set; }
    [JsonProperty("operation")]
    public string Operation { get; set; }
    [JsonProperty("filter")]
    public string Filter { get; set; }
    [JsonProperty("currentOrderList")]
    public string[] CurrentOrderList { get; set; }
}

然后更新控制器操作以期望所需的类型

//POST api/values
[HttpPost]
public IActionResul Post([FromBody]MyClass value) {
    if(ModelState.IsValid) {
        //...
        return Ok();
    }
    return BadRequest();
}
© www.soinside.com 2019 - 2024. All rights reserved.