【问题标题】:Does ASP.NET Core Web Api not expect to return a status codeASP.NET Core Web Api 是否不希望返回状态码
【发布时间】:2020-11-10 19:19:31
【问题描述】:

我正在尝试 ASP.NET Core 3.1,MVC。

我对返回类型感到困惑。

根据很多链接,比如https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio我们设置我们的签名包含返回类型

EG

public async Task<ActionResult<TodoItem>> GetTodoItem()
{
    return new ToDoItem();
}

从历史上看,我会返回一个状态码和返回对象,例如

public async Task<ActionResult> GetToDoItem()
{
    return Ok(new ToDoItem());
}

目前还不清楚为什么我们不再以这种方式返回状态码。我可能对 WebApi 和 MVC 控制器感到困惑,但随着我对此的深入了解,我相信没有真正的区别(因为它只是一个暴露的端点)

【问题讨论】:

  • 这里有关于控制器方法返回类型的各种文档:docs.microsoft.com/en-us/aspnet/core/web-api/… 第一个示例有效的原因是因为存在从 TActionResult&lt;T&gt; 的隐式转换以及操作结果的默认状态代码是 200。
  • @MartinCostello,我不确定你为什么发表评论。这是一个完美的答案。

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


【解决方案1】:

这个选择会是错误的好选择

public IActionResult Get()
 if(username == password )
 {
     return Ok(username);
 }else
 {
    return BadRequest("False");
 }

【讨论】:

  • 我喜欢这种方法,因为它更灵活。虽然严格来说,这是 MVC 而不是 WebAPI。但实际上没有人真正关心。
猜你喜欢
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2018-03-29
  • 2015-08-17
  • 1970-01-01
  • 2018-04-27
  • 2017-07-10
  • 1970-01-01
相关资源
最近更新 更多