为什么脚手架ASP.NET核心控制器返回NoContent()而不是OKSuccess()?

时间:2018-04-13 21:16:30

标签: c# asp.net-mvc asp.net-core

我正在尝试使用ASP.NET Core 2.0构建100%标准REST服务。当我使用Visual Studio 2017工具构建控制器时,它使用编写良好的GET,PUT,POST和DELETE方法构建了一个非常棒的异步控制器。

我想知道为什么虽然Put会返回NoContent而不是OK。似乎添加。

   // PUT: api/Sessions/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutSessionRec([FromRoute] int id, [FromBody] SessionRec sessionRec)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        if (id != sessionRec.Id)
        {
            return BadRequest();
        }

        _context.Entry(sessionRec).State = EntityState.Modified;

        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!SessionRecExists(id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return NoContent();
    }

DELETE GET和POST全部返回200&#39;(OK)

1 个答案:

答案 0 :(得分:1)

PUT的常见回应是&#39; 204&#39; (无内容),表示您的请求已成功处理,您无需重定向到其他页面,

顺便说一下,2xx响应是成功响应,您应该被视为相同。