【问题标题】:Controller and JsonResult asp.net core控制器和 JsonResult asp.net 核心
【发布时间】:2020-01-17 19:37:20
【问题描述】:

为什么我需要从Controller继承才能返回JsonResult?

使 JsonResult 类型可用的机制是什么?

我已经尝试过考虑它,我认为可能 Controller 将其声明为一种类型,但我不知道。

【问题讨论】:

    标签: asp.net-core model-view-controller jsonresult


    【解决方案1】:

    您需要从Controller 继承才能使用Controller.Json 实用程序方法。但是,您不需要只需要从Controller 继承来创建JsonResult。你总是可以只更新一个。只要您在控制器中(不一定是继承 Controller 的控制器),这仍然可以工作:

    return new JsonResult(object);
    

    至于为什么你需要继承Controller 而不仅仅是ControllerBase;许多结果实用程序方法实际上存在于Controller 中。原因是它们针对以视图为中心的控制器,而 ControllerBase 通常用于 API 控制器。

    现在有人会认为返回 JSON 结果对于 API 控制器尤其很有用,但实际上并非如此:对于 API 控制器,您应该返回一个 ObjectResult 并采用约定关心将其序列化为客户端请求的格式。这样一来,API 控制器就可以轻松地同时支持 JSON 和 XML 等格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2020-05-07
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      相关资源
      最近更新 更多