【问题标题】:Why asp.net web api return a action after insert data?为什么asp.net web api在插入数据后返回一个动作?
【发布时间】:2020-12-07 07:50:11
【问题描述】:

这是在添加控制器时插入VS2019生成的记录的功能:

      // POST: api/Students
       [HttpPost]
        public async Task<ActionResult<Student>> PostStudent(Student student)
        {
            _context.Students.Add(student);
            await _context.SaveChangesAsync();

            return  CreatedAtAction("GetStudent", new { id = student.Id }, student);
        }

我不明白为什么它使用CreatedAtAction返回student,为什么不直接返回对象return student;

【问题讨论】:

    标签: asp.net asp.net-core asp.net-web-api


    【解决方案1】:

    来自the docs,举个例子:

    创建产品时,CreatedAtAction 方法会生成 201 状态代码。在此代码路径中,产品对象在响应正文中提供。提供了包含新创建产品 URL 的 Location 响应标头。

    所以,它不仅返回对象,还包括可以找到新资源的 url。

    【讨论】:

    • 如果直接返回对象,还不能插入?
    • 当然,如果您不想包含位置,您可以更改它以返回对象。它仍然会更新数据库
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 2013-06-23
    • 1970-01-01
    • 2016-11-16
    • 2016-04-27
    • 1970-01-01
    • 2018-02-18
    相关资源
    最近更新 更多