asp.net - 返回项、Json(item) 和 Ok(item) 之间的 IHttpActionResult 区别

标签 asp.net asp.net-web-api asp.net-web-api2

在 ASP.NET Web Api 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);
}

最佳答案

此代码返回 result不会编译,如 result不实现 IHttpActionResult ...

public <IHttpActionResult> GetItem(Guid id)
{
    // ... code ..., Item result = ....
    return result;
}

返回 Json()始终以 JSON 格式返回 HTTP 200 和结果,无论传入请求的 Accept header 中是什么格式。
public <IHttpActionResult> GetItem(Guid id)
{
    // ... code ..., Item result = ....
    return Json(result);
}

返回 Ok()返回 HTTP 200,但结果将根据 Accept 请求 header 中指定的内容进行格式化。
public <IHttpActionResult> GetItem(Guid id)
{
    // ... code ..., Item result = ....
    return Ok(result);
}

关于asp.net - 返回项、Json(item) 和 Ok(item) 之间的 IHttpActionResult 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188206/

相关文章:

c# - WCF 服务如何与我的 winform 应用程序交互?

c# - 从网址下载 pdf 的最佳方法

c# - Web API 核心 : "FOREIGN KEY constraint failed" error during POST request SQLite

asp.net - 在 web.config 中硬编码密码是否安全?

jquery - 如何在asp.net中使用jquery连接数据库

c# - 在覆盖 FileConfigurationProvider 时使用 System.IO.Stream 检测为不兼容的类型

c# - 无法为内容类型多部分配置 Web API

c# - Swagger-Net 显示 Controller 名称而不是端点方法

c# - 将列表对象传递给 C# Web Api POST

c# - 同时使用属性路由和基于约定的路由与 Web API 和 MVC