【问题标题】:How do I put things in my RequestBody for my POST Method to find?如何将东西放在我的 RequestBody 中以供我的 POST 方法查找?
【发布时间】:2019-06-26 07:26:09
【问题描述】:

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

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

我不太了解/不知道如何在正文中放置内容/询问用户 (??) 的数据。我想我明白了,当调用 URL 时,它会解析页面正文中的任何内容/返回的 .json 并以这种方式找到它,但我不知道如何首先填充它。

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

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

        }

我希望得到任何关于其工作原理或如何实现这一点的描述...谢谢!

【问题讨论】:

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


    【解决方案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);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 2020-10-03
      • 1970-01-01
      • 2018-07-06
      相关资源
      最近更新 更多