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

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

我已经阅读了教程,并了解到我们可以通过单独使用MVC以及使用Web API模板来制作API。

那么,基于体系结构用法的这些差异有哪些?


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

MVC用于创建网站。 在这种情况下, Controllers通常会向浏览器请求返回一个View (即HTML响应)。 另一方面,Web API通常被其他应用程序使用。 如果您希望允许其他应用程序访问您的数据/功能,则可以创建Web API以方便此访问。 例如,Facebook有一个API,以允许应用程序开发人员访问有关使用该应用程序的用户的信息。 Web API不一定要用于公共消费。 您还可以创建一个API来支持您自己的应用程序。 例如,我们创建了一个Web API来支持我们的MVC网站的AJAX功能。

微软改变了他们展示不同模板的方式。 现在,不再为不同的项目类型使用不同的模板,而是鼓励开发人员根据需要在同一项目中混合使用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


我的两分钱...

  • ASP.Net MVC中 - MVC的Controller决定View应该是什么 - 即控制器在提出请求时决定用户应该“看到”什么(基于当前场景或上下文)。
  • ASP.Net Web窗体中ASPX页面决定用户在发出请求时应该“看到”什么。
  • 但在Web API中 ,没有任何Web API功能的控制/权力来决定用户在发出请求时应该“看到”什么。
  • Web API不是仅与网站绑定的技术。 它可以用于多种目的 - 不仅仅是网站。 所以它不知道rendering的意义

    进一步阅读

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

  • MVC控制器派生自控制器类。 在Mvc中,您可以返回视图。 Mvc achitecture用于创建应用程序。 但是,Web API用于向各种应用程序提供数据。

    来自Api控制器的Web Api驱动器,它不返回视图。

    注意:您也可以从MVC控制器创建Web Api,但需要将结果作为JsonResult或其他Web API支持的返回类型返回。

    链接地址: http://www.djcxy.com/p/20519.html

    上一篇: Difference between MVC 5 Project and Web Api Project

    下一篇: Standalone async web API on Mono