【问题标题】:why should I not use MVC Jsonresult instead of apicontroller get method为什么我不应该使用 MVC Jsonresult 而不是 apicontroller get 方法
【发布时间】:2019-08-22 08:06:43
【问题描述】:

我开发了一个应用程序,它是 MVC 应用程序。它要求应用程序将为一个 get 请求返回 json 数据。 所以我添加了 apicontroller 并创建了一个 get 方法来返回 json 数据。

到目前为止一切顺利。但后来我想,是否真的需要添加 apicontroller 来创建一个 get 方法。

我开始探索和搜索除了内容协商之外的区别。得到了很多答案和文章,但没有一个是令人满意的。

所以这是真正的困惑,为什么我不能在 MVC 控制器中使用 JsonResponse 创建一个方法并返回 json 数据(我知道这只是我的要求,但不同域上的其他应用程序会消耗它)。

谁能说服我为什么要使用 apicontroller 而不是 MVC JsonResponse 来满足我的要求,或者我根本不应该使用 apicontroller。

如有错误请见谅。

【问题讨论】:

    标签: asp.net-mvc-5 asp.net-apicontroller jsonresult


    【解决方案1】:

    如果我猜对了,问题是我们可以使用 MVC 操作来服务json 内容吗?答案是是的!可以用Json Result吗?答案是这取决于你想在哪里消费它

    假设我在一个不需要 API 的 Web 环境中(这意味着我不会将我的数据提供给多个客户端)如果这是只有您的视图会使用从您返回的数据的场景行动方法你很高兴。返回Json Result 的操作基本上是一个操作结果,这就是它的用途。

    但如果您处于 REST 场景中并且您需要您的后端将您的数据 提供给客户端事实上的标准 是为此使用独立的 Web API。

    控制器的主要职责应该是充当您的视图和模型以及您想要引入其中的任何服务层之间的中介。另一方面,Web API 是数据驱动的目的是提供数据(如果需要,请使用它们)

    Web API 很好,因为它们让您可以灵活地将数据提供给可能需要它的任何客户端。如果我从头开始,但如果我只需要向一个客户端提供数据,那么这就是我会选择的,控制器 Action 方法将是可行的方法。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 1970-01-01
      • 2016-05-23
      • 2012-09-18
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 2018-05-10
      • 2014-03-12
      相关资源
      最近更新 更多