Asp.net

ASP.NET Core API 中的 IActionResult vs ObjectResult vs JsonResult

  • July 17, 2019

在將返回結果HTTP status codesJSON結果的 Web API 中使用的最佳選擇是什麼?

我一直在使用IActionResult,但它始終是帶有 Web API 的 Web App。這次只有 Web API

我有以下簡單的方法,它給了我一個錯誤,內容如下:

無法將類型 Microsoft.AspNetCore.Mvc.OkObjectResult 隱式轉換為 System.Threading.Tasks.Task Microsoft.AspNetCore.Mvc.IActionResult

[HttpGet]
public Task<IActionResult> Get()
{
  return Ok();
}

返回最適合請求需求的對象。至於動作的方法定義,定義它IActionResult以允許靈活地使用與緊密耦合的實體相對的抽象。

[HttpGet]
public IActionResult Get() {
  return Ok();
}

上述操作在呼叫時將返回 200 OK 響應。

[HttpGet]
public IActionResult Get() {
  var model = SomeMethod();
  return Ok(model);
}

以上將返回帶有內容的 200 OK 響應。不同之處在於它允許內容協商,因為它並不特別限於 JSON。

[HttpGet]
public IActionResult Get() {
  var model = SomeMethod();
  return Json(model);
}

以上只會返回 Json 內容類型。

關於該主題的一篇非常好的文章

Asp.Net 核心操作結果解釋

引用自:https://stackoverflow.com/questions/46832422