【发布时间】: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/… 第一个示例有效的原因是因为存在从
T到ActionResult<T>的隐式转换以及操作结果的默认状态代码是 200。 -
@MartinCostello,我不确定你为什么发表评论。这是一个完美的答案。