System.Web.Http.Results.OkResult 与内容(HttpStatusCode.OK)

Bry*_*yan 5 c# httpresponse asp.net-web-api asp.net-web-api2

在 Web Api 2 中,我可以通过两种方式返回 200。

return Ok()或者return Ok("Some value")

或者

return Content(HttpStatusCode.OK, "Some value")它可以包含任何值,以及格式化程序和一些其他参数。

我知道return Content(...)支持所有内容HttpStatusCodes,因此它将用于响应,例如NoContent没有的地方return NoContent()

只是return Ok() 一个捷径吗return Content(..)

Nko*_*osi 1

只是return Ok()一个捷径吗return Content(..)

如果您查看相关方法,您将看到它们返回IHttpActionResult派生类的内容

protected internal virtual NegotiatedContentResult<T> Content<T>(HttpStatusCode statusCode, T value);        
protected internal FormattedContentResult<T> Content<T>(HttpStatusCode statusCode, T value, MediaTypeFormatter formatter);        
protected internal virtual FormattedContentResult<T> Content<T>(HttpStatusCode statusCode, T value, MediaTypeFormatter formatter, MediaTypeHeaderValue mediaType);    
protected internal FormattedContentResult<T> Content<T>(HttpStatusCode statusCode, T value, MediaTypeFormatter formatter, string mediaType);    
protected internal virtual OkResult Ok();
protected internal virtual OkNegotiatedContentResult<T> Ok<T>(T content);
Run Code Online (Sandbox Code Playgroud)

每一种返回类型除了派生自 之外,彼此无关IHttpActionResult

  • 我进入.net源代码并看到返回的各种不同类型,但是从调用方来看有什么区别吗? (2认同)