MVC 5项目和Web Api项目的区别
本文关键字:项目 区别 Api MVC Web | 更新日期: 2023-09-27 17:52:45
我是新手ASP。. NET MVC和Web API,并试图获得基础知识。在VS 2013中,我们有项目模板,命名为MVC
, Web API
和Both of them together
。
我已经完成了教程,并了解到我们可以通过单独使用MVC以及Web API模板制作API。
那么,基于架构和用法,它们之间有什么区别呢?基本上,Web API
控制器是MVC
控制器,它使用HttpMessageResponse
作为其响应的基本类型,而不是ActionResponse
。他们在大多数其他方面是一样的。项目类型之间的主要区别在于MVC Application
项目类型添加了web特定的东西,如默认的CSS
, JavaScript
文件和其他网站所需的资源,这些都不是API所需要的。
Controllers
通常返回View
(即HTML响应)给浏览器请求。另一方面,Web api通常是供其他应用程序使用的。如果您希望允许其他应用程序访问您的数据/功能,您可以创建一个Web API来促进这种访问。例如,Facebook有一个API,允许应用程序开发人员访问使用该应用程序的用户信息。Web API不必面向公众。您还可以创建API来支持您自己的应用程序。例如,我们创建了一个Web API来支持MVC网站的AJAX功能。
微软改变了他们呈现不同模板的方式。现在,他们不再为不同的项目类型使用不同的模板,而是鼓励开发人员混合使用ASP。. NET技术在同一项目中的需要。微软称之为vNext
。
UPDATE:. NET Core, Web API已经集成到MVC 6项目类型中,ApiController
类被整合到Controller
类中。详见:https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
My two cents…
- 在<<li> strong> ASP。. Net MVC - MVC的
- 但是在Web API中,对于任何Web API的功能都没有控制/权力来决定用户在发出请求时应该"看到"什么。
Controller
决定什么应该是View
-即,控制器决定用户应该"看到"什么(基于当前场景或上下文),当他们发出请求。在<<li> strong> ASP。. Net Web Forms, ASPX
页面决定用户在发出请求时应该"看到"什么。Web API不仅仅是与网站捆绑在一起的技术。它可以用于多种用途,而不仅仅是网站。所以它不知道rendering
进一步阅读
- 今天规划Web解决方案:Web表单,ASP。. NET MVC, Web API和OWIN。
- WCF或ASP。. NET Web api ?我对这个问题的看法
- 下一代。net - ASP。净vNext
- Getting Started with ASPNet MVC 6
从控制器类派生的MVC控制器。在Mvc中,你可以返回视图。Mvc架构用来创建应用程序。然而,Web api用于向各种应用程序提供数据。
Web Api驱动来自Api控制器,它不返回视图。
注意:你也可以从MVC控制器创建Web Api,但你需要返回JsonResult或其他Web Api支持的返回类型的结果。
除了这里已经提供的答案之外,值得注意的是,任何继承自ApiController并且具有Http动词POST操作的控制器只能有一个[FromBody]输入参数。如果使用MVC控制器(从' controller '派生),你可以有许多post输入参数