C# 为什么搭建的ASP.NET核心控制器返回NoContent()而不是OKSuccess()?
我正在尝试用ASP.NETCore2.0构建一个100%的标准REST服务。当我使用Visual Studio 2017工具构建控制器时,它使用编写良好的GET、PUT、POST和DELETE方法构建了一个很棒的异步控制器 我想知道为什么Put返回NoContent和not OK。似乎在补充C# 为什么搭建的ASP.NET核心控制器返回NoContent()而不是OKSuccess()?,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我正在尝试用ASP.NETCore2.0构建一个100%的标准REST服务。当我使用Visual Studio 2017工具构建控制器时,它使用编写良好的GET、PUT、POST和DELETE方法构建了一个很棒的异步控制器 我想知道为什么Put返回NoContent和not OK。似乎在补充 // PUT: api/Sessions/5 [HttpPut("{id}")] public async Task<IActionResult> PutSessionRe
// 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();
}
//PUT:api/Sessions/5
[HttpPut(“{id}”)]
公共异步任务PutSessionRec([FromRoute]int id,[FromBody]SessionRec SessionRec)
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
if(id!=sessionRec.id)
{
返回请求();
}
_context.Entry(sessionRec.State=EntityState.Modified;
尝试
{
wait_context.SaveChangesAsync();
}
catch(DbUpdateConcurrencyException)
{
如果(!SessionRecExists(id))
{
返回NotFound();
}
其他的
{
投掷;
}
}
返回NoContent();
}
删除GET和POST所有返回200(确定)PUT的常见响应为“204”(无内容),它表示您的请求已成功处理,您无需重定向到其他页面
顺便说一句,
2xx
响应是成功响应,您应该被视为成功响应。:“HTTP 204无内容成功状态响应代码表示请求已成功,但客户端不需要离开当前页面。”谢谢@RonBeyer Axios(我的JavaScript spa rest库)将204视为一个错误,这是我正在研究的原因(似乎是错误的)。您使用哪个javascript库?