在返回HTTP status codes
和JSON
结果的 Web API 中使用的最佳选项是什么?
我一直使用IActionResult
但它始终是一个带有Web API的Web应用程序。这次只有 Web API。
我有以下简单的方法,它给我一个错误,内容如下:
无法隐式转换类型 Microsoft.AspNetCore.Mvc.OkObjectResult to 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 核心行动结果说明