Answers:
基本上,Web API
控制器是一个MVC
控制器,它使用HttpMessageResponse
而不是作为其响应的基本类型ActionResponse
。它们在大多数其他方面是相同的。项目类型之间的主要区别在于,MVC Application
项目类型添加了Web特定的东西,例如default CSS
,JavaScript
文件和网站所需的其他资源,而API则不需要。
MVC用于创建网站。在这种情况下,Controllers
通常会View
向浏览器请求返回一个(即HTML响应)。另一方面,通常使Web API被其他应用程序使用。如果要允许其他应用程序访问您的数据/功能,则可以创建一个Web API来促进这种访问。例如,Facebook有一个API,以便允许App开发人员访问有关使用该App的用户的信息。Web API不必供公众使用。您还可以创建一个API来支持自己的应用程序。例如,我们创建了一个Web API以支持MVC网站的AJAX功能。
Microsoft更改了他们呈现不同模板的方式。现在,他们鼓励开发人员在需要的同一个项目中混合使用ASP.NET技术,而不是对不同的项目类型使用不同的模板。微软称之为vNext
。
更新:对于ASP.NET Core,Web API已集成到MVC 6项目类型中,并且ApiController
该类已合并到Controller
该类中。有关更多详细信息,请访问:https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
我的两分钱
Controller
决定应该是什么View
-即,控制器在用户发出请求时决定用户应该“看到”的内容(基于当前方案或上下文)。ASPX
页面决定用户发出请求时应“看到”的内容。Web API并非仅与网站捆绑在一起的技术。它可以用于多种目的–不仅限于网站。所以它不知道rendering
进一步阅读
从控制器类派生的MVC控制器。在Mvc中,您可以返回视图。Mvc体系结构用于创建应用程序。但是,Web api用于向各种应用程序提供数据。
Web Api从Api控制器驱动器,并且不返回视图。
注意:您也可以从MVC控制器创建Web Api,但需要以JsonResult或其他受Web API支持的返回类型返回结果。