【发布时间】:2018-04-14 12:41:30
【问题描述】:
我正在尝试使用 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's (OK)
【问题讨论】:
-
HTTP Code 204: No Content: "HTTP 204 No Content 成功状态响应码表示请求已经成功,但是客户端不需要离开当前页面。”
-
感谢@RonBeyer Axios(我的 JavaScript spa rest 库)将 204 视为错误,我现在正在研究为什么(似乎是错误的)。
-
您使用的是哪个 javascript 库?
标签: c# asp.net-mvc asp.net-core