【发布时间】:2020-01-17 19:37:20
【问题描述】:
为什么我需要从Controller继承才能返回JsonResult?
使 JsonResult 类型可用的机制是什么?
我已经尝试过考虑它,我认为可能 Controller 将其声明为一种类型,但我不知道。
【问题讨论】:
标签: asp.net-core model-view-controller jsonresult
为什么我需要从Controller继承才能返回JsonResult?
使 JsonResult 类型可用的机制是什么?
我已经尝试过考虑它,我认为可能 Controller 将其声明为一种类型,但我不知道。
【问题讨论】:
标签: asp.net-core model-view-controller jsonresult
您需要从Controller 继承才能使用Controller.Json 实用程序方法。但是,您不需要只需要从Controller 继承来创建JsonResult。你总是可以只更新一个。只要您在控制器中(不一定是继承 Controller 的控制器),这仍然可以工作:
return new JsonResult(object);
至于为什么你需要继承Controller 而不仅仅是ControllerBase;许多结果实用程序方法实际上存在于Controller 中。原因是它们针对以视图为中心的控制器,而 ControllerBase 通常用于 API 控制器。
现在有人会认为返回 JSON 结果对于 API 控制器尤其很有用,但实际上并非如此:对于 API 控制器,您应该返回一个 ObjectResult 并采用约定关心将其序列化为客户端请求的格式。这样一来,API 控制器就可以轻松地同时支持 JSON 和 XML 等格式。
【讨论】: