我知道WEB API与MVC之间的区别。我也知道,在asp.net核心1.0中只有一种类型的控制器可以处理MVC和API。但是,我最近一直在观看很多ASP.NET MVC教程,并注意到教师在Controllers文件夹内创建了一个Api文件夹。何时使用API控制器与MVC控制器
这样,他将所有主要处理ViewModel的MVC控制器分开,并使用View函数告诉MVC从API控制器中显示哪个视图,主要处理Dtos并似乎严格处理数据,而不是视图。
你会认为在MVC应用程序中不会有API控制器吗?特别是在核心1.0中,你从一个类继承:'Controller'。但是我猜想,当你将前端框架(如Angular和Kendo UI)合并为一个Ajax请求时,你通常需要通过api来完成这些请求。
这是我目前的理解:
使用MVC控制器严格的MVC只喜欢指定功能,这视图应该显示和传递一个视图模型与它一起。
使用API控制器主要用于ajax调用,从不用于视图初始加载,并且从不用于MVC CRUD模式。
有人可以给我一个更好的标准,当涉及到这一点?
现在,您可以在同一控制器中自由组合MVC和API操作,这主要是一个意见或设计决定。从提供数据的API控制器分离提供演示的MVC控制器听起来像是一个“分离关注点”的决定。真正由你决定如何构建事物。 – jmoerdyk