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

时间:2019-04-01 07:54:10

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

我已经开发了一个名为MVC的应用程序。它要求应用程序将为一个get请求返回json数据。 因此,我添加了apicontroller并创建了一个get方法以返回json数据。

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

我开始探索和搜索除了内容协商以外的区别。有很多答案和文章,但都不令人满意。

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

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

道歉,如果有任何错误。

1 个答案:

答案 0 :(得分:0)

如果我做对了,问题是我们可以使用MVC动作来投放json内容吗?回答是!使用Json Result可以吗?答案是这取决于您要在哪里消费

说我是在Web环境中,不需要API(这意味着我不会将数据提供给多个客户端),如果是这种情况,则仅您的View将使用从您的返回的数据采取的行动方法很好。返回Json Result的动作基本上就是动作结果,这就是它的作用。

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

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

Web API是一个很好的原因,因为它们使您可以灵活地将数据提供给可能需要其的任何客户端。如果我从头开始,那将是我的选择,但是如果我只需要将数据提供给一个客户端,那么Controller Action方法就可以了。

希望这会有所帮助。