如何将东西放在RequestBody中以查找POST方法?

时间:2019-06-25 22:37:09

标签: c# rest asp.net-core visual-studio-2019

对于ASP.NET Core,C#和RESTful API,我非常。我现在正在尝试创建一个简单的练习应用程序,以练习不同的REST命令。我正在使用的“数据库”是具有名称,年龄和权重的对象的列表。

当前,我正在尝试实现POST方法。我可能会使用[FromQuery]来获取创建新对象并添加所需的数据。但是,我认为最好从FromBody访问它,尤其是如果我以后要添加更多字段时。

我不太了解/不知道我该如何向用户(??)填充/询问体内的数据。我想我知道,当调用URL时,它将解析页面/返回的.json正文中的内容,并以这种方式找到它,但是我不知道如何首先填充它。 / p>

到目前为止,这只是我的POST代码:

[HttpPost]
        public ActionResult<List<Objects>> Post([FromQuery] String NewName, [FromQuery] int NewAge, [FromQuery] double NewWeight)
        {
            return MyList.AddItem(NewName, NewAge, NewWeight);

        }

我很乐意描述它的工作方式或实现方式...谢谢!

1 个答案:

答案 0 :(得分:1)

创建一个包含所有必需数据的模型

public class NewModel {
    public String NewName { get; set; }
    public int NewAge { get; set; }
    public double NewWeight { get; set; }
}

更新操作以期望该数据并使用[FromBody]

对其进行注释
[HttpPost]
public ActionResult<MyModelType> Post([FromBody] NewModel data) {
    if (ModelState.IsValid) {
        var model = MyList.AddItem(data.NewName, data.NewAge, data.NewWeight);
        return model;
    }
    return BadRequest(ModelState);
}

然后,您的服务的使用者将在请求的正文中发布具有所需数据的请求,并且模型绑定器应在控制器操作中填充模型。