什么时候使用API控制器vs MVC控制器

本文关键字:控制器 vs MVC API 什么时候 | 更新日期: 2023-09-27 18:03:06

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

然而,我一直在看很多ASP。最近的。NET MVC教程,并注意到,讲师创建了一个Api文件夹的控制器文件夹内。

通过这种方式,他将所有主要处理viewmodel的MVC控制器分离出来,并使用View函数告诉MVC要显示哪个视图,而API控制器主要处理dto,似乎严格地处理数据,而不是视图。

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

这是我目前的理解:
严格地使用MVC控制器只用于MVC功能,比如指定应该显示哪个视图和传递一个视图模型。

API控制器主要用于ajax调用,永远不要用于视图初始加载,也不要用于MVC CRUD模式。

在这个问题上,谁能给我一个更好的标准来遵循?

什么时候使用API控制器vs MVC控制器

正如你所指出的,两者在。net Core中没有区别,创建一个"API"文件夹纯粹是为了项目组织,但控制器将是相同类型的。

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