在ASP.NET WebApi 2中,以下各项有何不同:
public <IHttpActionResult> GetItem(Guid id)
{
// ... code ..., Item result = ....
return result;
}
public <IHttpActionResult> GetItem(Guid id)
{
// ... code ..., Item result = ....
return Json(result);
}
public <IHttpActionResult> GetItem(Guid id)
{
// ... code ..., Item result = ....
return Ok(result);
}
发布于 2014-04-21 14:59:49
这段返回result
的代码不能编译,因为result
没有实现IHttpActionResult
...
public <IHttpActionResult> GetItem(Guid id)
{
// ... code ..., Item result = ....
return result;
}
返回Json()
总是返回HTTP200和JSON格式的结果,无论传入请求的Accept头中是什么格式。
public <IHttpActionResult> GetItem(Guid id)
{
// ... code ..., Item result = ....
return Json(result);
}
返回Ok()
将返回HTTP200,但结果将根据Accept请求头部中指定的内容进行格式化。
public <IHttpActionResult> GetItem(Guid id)
{
// ... code ..., Item result = ....
return Ok(result);
}
发布于 2016-07-21 06:10:02
只是对前面的解释的补充:
函数的返回类型为:IHttpActionResult
因此,期望该方法返回一个IHttpActionResult
,它是HttpResponseMessage
的一个接口。HttpResponseMessage
具有有用的属性,如标头、内容和状态代码。
因此,Ok(result)
返回一个HttpResponseMessage
,其中包含Ok
状态码和内容,在本例中就是结果。同时,Json(result)
将对象转换为json格式,也称为序列化,并将其作为内容放置在HttpResponseMessage
中。
使用ASP.NET的web最好的地方是它创建了通过抽象传递Http响应的简单方法。最糟糕的是,在实际使用相对简单的方法之前,需要一点理解。
Here是关于序列化和json的更多信息。
有关IHttpActionResult的更多信息,请参阅Here
https://stackoverflow.com/questions/23188206
复制相似问题