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

本文关键字:项目 区别 Api MVC Web | 更新日期: 2023-09-27 17:52:45

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

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

那么,基于架构用法,它们之间有什么区别呢?

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

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

MVC是用来创建网站的。在这种情况下,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的Controller决定什么应该是View -即,控制器决定用户应该"看到"什么(基于当前场景或上下文),当他们发出请求。在<<li> strong> ASP。. Net Web Forms, ASPX页面决定用户在发出请求时应该"看到"什么。
  1. 但是在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。净vNext
  4. 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输入参数