MVC 5项目和Web Api项目的区别
我是ASP.NET MVC和Web API的新手,并试图获得基础知识。 AFAIK,我们在VS 2013中有项目模板,命名为MVC
, Web API
和Both of them together
。
我已经通过教程了解到,我们可以通过单独使用MVC以及使用Web API模板来制作API。
那么,基于体系结构和用法 ,这两者之间有什么区别呢?
基本上, Web API
控制器是一个MVC
控制器,它使用HttpMessageResponse
作为其响应的基本types,而不是ActionResponse
。 他们在其他方面是一样的。 项目types之间的主要区别在于MVC Application
项目types添加了网站特定的东西,比如缺省CSS
, JavaScript
文件和网站所需的其他资源,而这些不需要API。
MVC用于创build网站。 在这种情况下, Controllers
通常会向浏览器请求返回一个View
(即HTML响应)。 另一方面,Web API通常被其他应用程序占用。 如果您希望允许其他应用程序访问您的数据/function,则可以创buildWeb API以方便访问。 例如,Facebook有一个API,以允许应用程序开发人员访问使用该应用程序的用户的信息。 Web API不一定要用于公共消费。 您也可以创build一个API来支持您自己的应用程序。 例如,我们创build了一个Web API来支持我们的MVC网站的AJAXfunction。
微软改变了他们呈现不同模板的方式。 现在,不要为不同的项目types使用不同的模板,而是鼓励开发人员根据需要在同一个项目中混合使用ASP.NET技术。 微软称这个vNext
。
更新:对于ASP.NET Core,Web API已被集成到MVC 6项目types中,并且ApiController
类被整合到Controller
类中。 更多详细信息,请访问: https : //wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6
我的两分钱…
- 在ASP.Net MVC中 – MVC的
Controller
决定什么应该是View
– 即控制器决定什么时候用户应该“看到”(基于当前的场景或上下文),当他们提出请求时。 - 在ASP.Net Web窗体中 ,
ASPX
页面决定用户在发出请求时应该“看到”什么。 - 但在Web API中 ,没有任何Web APIfunction的控制/权力来决定用户在发出请求时应该“看到”什么。
Web API不是仅与网站绑定的技术。 它可以用于多种目的 – 不仅仅是网站。 所以它不知道rendering
的意义
进一步阅读
- 规划今天的Web解决scheme:Web窗体,ASP.NET MVC,Web API和OWIN。
- WCF或ASP.NET Web API? 我的两分钱的主题
- 下一代.NET – ASP.NET vNext
- ASP.NET MVC 6入门
- asp.net:无效的回发或callback参数
- 未find方法:'!! 0 System.Array.Empty()'。 ASApp.BundleConfig.RegisterBundles(BundleCollection包)inBundleConfig.cs
- 什么是ASPXAUTH cookie?
- 用数据注释分配DateTime格式?
- 无法让sql server compact 3.5 / 4与ASP .NET MVC 2一起工作
- ASP.NET从Session中删除一个项目?
- 从命令行复制VS2008“发布网站”
- ASP.Net主页面和文件path问题
- 我怎么知道一个非必需的RenderSection是否存在?