【问题标题】:What is difference between ObjectResult and JsonResultObjectResult 和 JsonResult 有什么区别
【发布时间】:2016-12-11 19:54:19
【问题描述】:

Microsoft.AspNetCore.Mvc 命名空间中有两个类:

ObjectResultJsonResult

两者都将返回的对象转换为 JSON 格式。

它们有什么区别,使用它们的目的是什么?

【问题讨论】:

    标签: json asp.net-core .net-core asp.net-core-mvc


    【解决方案1】:

    JsonResult 是一个IActionResult,它将给定对象格式化为 JSON

    ObjectResult 是一个内置内容协商的IActionResult

    在其负责写入响应流的ExecuteResultAsync 中,框架将遍历可用的格式化程序并选择一个相关的。

    选择格式化程序的逻辑与 ASP.NET Web API 中的类似,并且基于以下优先顺序:

    • 接受标头
    • 内容类型标头
    • 基于类型匹配的选择

    OkObjectResult 类

    一个Microsoft.AspNetCore.Mvc.ObjectResult 在执行时执行 内容协商,格式化实体主体,并生成一个 Microsoft.AspNetCore.Http.StatusCodes.Status200OK 回复如果 协商和格式化成功。

    参考资料:

    【讨论】:

    • 感谢您的回答。所以 ObjectResult 是更通用的类,没有任何理由使用 JsonResult?
    • 如果您只想返回 json 数据,请使用JsonResult。如果您希望 api 更灵活并允许返回不同的格式,那么ObjectResult 将允许内容协商。
    • 为什么不使用 ObjectResult 来返回 json 呢(在这种情况下,它将是相同的样式)?这种情况下 JsonResult 有什么优势?
    • 我想这是一个偏好问题。 JsonResult 允许您在不做太多工作的情况下限制内容类型。
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    相关资源
    最近更新 更多