当返回类型不是 ActionResult 时如何返回 BadRequest?

时间:2021-06-13 06:25:22

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

似乎 HttpGet 方法的返回类型不必是 ActionResult。例如,以下方法有效:

[HttpGet]
[Route("list")]
public async Task<IEnumerable<MyItem>> List()

但是,在这种情况下,我如何返回 BadRequest (BadRequest("..."))?

1 个答案:

答案 0 :(得分:0)

如果您确实需要在控制器方法中使用 BadRequest 进行响应,您可以使用 Microsoft 推荐的以下方法 here

[HttpGet("list")]
[ProducesResponseType(StatusCodes.Status200OK, Type = typeof(IEnumerable<MyItem>))]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public async IActionResult List()
{
  // Code to validate request
  if(requestIsValid)
  {
    // Code to get IEnumerable of MyItems
    return Ok(myItems);
  }
  else
  {
    return BadRequest()
  } 
}
相关问题