何时使用API​​控制器与MVC控制器

Bla*_*ell 7 c# asp.net asp.net-mvc asp.net-web-api asp.net-core

我知道WEB API和MVC之间的区别.我也知道在asp.net core 1.0中只有一种类型的控制器可以同时处理MVC和API.

但是,我最近一直在观看很多ASP.NET MVC教程,并注意到教师在Controllers文件夹中创建了一个Api文件夹.

这样他就分出了主要处理ViewModel的所有MVC控制器,并使用View函数告诉MVC哪个视图要从主要处理Dtos的API控制器中显示,并且似乎严格处理数据,而不是视图.

您会认为在MVC应用程序中不会有API控制器吗?特别是因为在核心1.0中你继承了一个类:'Controller'.但是我想当你整合像Angular和Kendo UI这样的前端框架来制作很多ajax请求时,你通常希望通过api来完成它们.

这是我目前的理解:
严格使用MVC控制器仅用于MVC,例如指定应显示哪个视图以及传递视图模型.

使用API​​控制器主要用于ajax调用,从不用于视图初始加载,从不用于MVC CRUD模式.

在谈到这一点时,有人能给我一个更好的标准吗?

And*_*atz 12

正如您所指出的,两者之间的.Net Core没有区别,创建"API"文件夹纯粹是为了项目组织,但控制器的类型相同.

如果你想要一个相当简单的规则,我会说任何返回JSON/XML /数据的方法(没有表示信息)应该是一个"API"控制器,任何返回HTML的东西都应该是一个"MVC"控制器,或者不是API文件夹.