为什么我不应该使用MVC Jsonresult而不是apicontroller get方法

问题描述 投票:0回答:1

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

到现在为止还挺好。但后来我想,是否真的需要添加apicontroller来创建一个get方法。

我开始探索和谷歌搜索除了内容协商之外的其他区别。得到了很多答案和文章,但不是很满意。

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

任何人都可以说服我为什么我应该使用apicontroller而不是MVC JsonResponse来满足我的要求,或者我根本不应该使用apicontroller。

道歉,如果有任何错误。

asp.net-mvc-5 asp.net-apicontroller jsonresult
1个回答
0
投票

如果我做得对,问题是我们可以使用MVC动作来服务json内容答案是肯定的!可以使用Json Result吗?答案是,这取决于你想要消费它的地方

假设我是一个Web环境,我不需要API(这意味着我不会将数据提供给多个客户端)如果只是你的View将使用你的Action Method返回的数据很高兴去。返回Json Result的Action基本上是一个Action Result,它就是它的用途。

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

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

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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.