Bootstrap
在Asp.net Core中,JsonResult和ObjectResult都可以返回Json格式的响应结果,他们之间用法有哪些不同,分别在什么情况下使用他们呢,本文主要介绍一下。

1、JsonResult和ObjectResult用法

1)JsonResult

JsonResult是实现IActionResult接口,将指定的对象转换成Json字符串,返回响应结果。

2)ObjectResult

ObjectResult也是实现IActionResult接口,它的内部会进行内容协商。遍历所有格式化程序找到合适的。选择合适的格式化程序的逻辑类似ASP.NET Web API,基于下面的优先顺序:

  • Accept Header(http协议)
  • Content-Type header(http协议)
  • Selection based on type match(基于类型选择匹配)

2、使用场景

如果是只响应JSON格式,就用JsonResult就可以了。如果响应的格式不确定是Json,可以根据请求头去动态的协商,那就需要用ObjectResult来响应不同格式的。

OkObjectResult是继承自Microsoft.AspNetCore.Mvc.ObjectResult,进行内容协商格式化body,如果协商和格式化成功返回Microsoft.AspNetCore.Http.StatusCodes.Status200OK。

ObjectResult则是强调返回的内容。