MVC 5项目和Web Api项目之间的区别

loo*_*oop 134 c# asp.net asp.net-mvc asp.net-web-api

我是ASP.NET MVCWeb API的新手,并试图获得基础知识.据我所知,我们在VS 2013项目模板,命名为MVC,Web APIBoth of them together.

我已经完成了教程并了解到我们可以通过单独使用MVC以及使用Web API模板来创建API.

那么,基于架构使用情况,它们之间有什么区别?

Ela*_*hmi 180

基本上,Web API控制器是一个MVC控制器,它HttpMessageResponse用作其响应的基本类型,而不是ActionResponse.它们在大多数其他方面都是相同的.项目类型之间的主要区别在于MVC Application项目类型添加了Web特定的内容,如默认CSS,JavaScript文件和网站所需的其他资源,这些都是API不需要的.

MVC用于创建网站.在这种情况下,Controllers通常会View向浏览器请求返回一个(即HTML响应).另一方面,Web API通常被其他应用程序使用.如果要允许其他应用程序访问您的数据/功能,可以创建Web API以方便此访问.例如,Facebook有一个API,以允许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


LCJ*_*LCJ 70

我的两分钱......

  1. ASP.Net MVC中 - MVC Controller决定应该是什么View- 即,控制器在他们发出请求时决定用户应该"看到"(基于当前场景或上下文).
  2. ASP.Net Web窗体中,ASPX页面决定用户在发出请求时应"看到"的内容.
  3. 但是在Web API中,任何Web API的功能都没有控制权/权力来决定用户在发出请求时应该"看到"的内容.

Web API不仅仅是与网站捆绑在一起的技术.它可以用于多种用途 - 不仅仅是网站.所以它不知道的含义rendering

进一步阅读

  1. 立即规划Web解决方案:Web窗体,ASP.NET MVC,Web API和OWIN.
  2. WCF或ASP.NET Web API?关于这个问题我的两分钱
  3. 下一代.NET - ASP.NET vNext
  4. ASP.NET MVC入门6

  • 接受的答案指出“基本上,Web API控制器是MVC控制器”。那是完全错误的。您的答复指出,WebAPI的整个* POINT *是它* IS N'T * MVC,它* DOES N'T *必须处理所有处理“视图”和“渲染”的包and和开销。...,而WebApi控制器甚至不必仅与网站捆绑在一起。很好的答复-谢谢! (2认同)