Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何及;在何处使用Web API2和MVC 5应用程序_Asp.net Mvc_Razor_Asp.net Web Api2_Strongly Typed Dataset - Fatal编程技术网

Asp.net mvc 如何及;在何处使用Web API2和MVC 5应用程序

Asp.net mvc 如何及;在何处使用Web API2和MVC 5应用程序,asp.net-mvc,razor,asp.net-web-api2,strongly-typed-dataset,Asp.net Mvc,Razor,Asp.net Web Api2,Strongly Typed Dataset,我来自MVC开发背景,我确实理解Web Api的概念,但我很难理解,如果我正在开发MVC应用程序,我需要在哪里使用Web Api 如果我在WebAPI中构建应用程序,我是否不需要更多的MVC,即MVC控制器、Razor代码、强类型数据绑定 我想了解MVC应用程序和Web API;从建筑学的角度看 我有一个新的项目,我应该如何在其中使用WebAPI 非常感谢Web API仅仅是一种在HTTP协议上工作的服务,任何在HTTP协议上运行的设备(包括移动应用程序)都可以使用它。。如果你想在你的web项目

我来自MVC开发背景,我确实理解Web Api的概念,但我很难理解,如果我正在开发MVC应用程序,我需要在哪里使用Web Api

如果我在WebAPI中构建应用程序,我是否不需要更多的MVC,即MVC控制器、Razor代码、强类型数据绑定

我想了解MVC应用程序和Web API;从建筑学的角度看

我有一个新的项目,我应该如何在其中使用WebAPI


非常感谢

Web API仅仅是一种在HTTP协议上工作的服务,任何在HTTP协议上运行的设备(包括移动应用程序)都可以使用它。。如果你想在你的web项目中使用它,那么我建议在你所有的列表页面中使用它。。制作一个ApiController,然后在cshtml页面上对其中的所有列表页面函数进行编码。。通过使用Ajax调用web api控制器,您还可以使用Angular来构建列表页面。。这对你来说是个很好的锻炼。。至少它对我有用。

这是个棘手的问题,你知道吗?但我将尝试给出我的观点,这是基于我在使用这两个框架开发不同应用程序和服务方面的经验

我认为,这两个框架之间最显著的区别在于它们的设计目标:MVC是为构建网站而构思的(传统上一直使用),而WebAPI是作为构建服务的框架而诞生的

MVC MVC擅长构建使用传统交互模型的网站和web应用程序,这些模型基于web浏览器作为客户端、同步交互(不使用AJAX或很少使用AJAX)和HTML作为主要表示语言(这就是为什么我们通常在控制器内返回视图)

从体系结构的角度来看,MVC可以被看作是一个跨表示层和服务层的框架:它可以通过一个严格由填充视图驱动的接口来构建一个已经是web应用程序的服务。虽然这种应用程序类型可以从更高的角度定义为可互操作的,但它肯定只限于一种客户端(Web浏览器)

Web API 相反,Web API被明确设计为构建服务的框架,许多概念继承自我们在过去实现Web服务SOA所学的内容。它的目的是允许各种不同的设备和客户端通过HTTP使用服务。它不限制对web浏览器的访问,但可以轻松用作任何客户端应用程序(移动应用程序、SPA、甚至其他独立服务)和后端/业务逻辑之间的抽象层(前面提到的服务层),而不会失去REST原则和HTTP协议提供的所有体系结构和互操作性优势

Web API与客户端框架(如AngularJS、React、主干网)结合时表现出色,因为它成为数据和业务逻辑背后的引擎,允许这些框架在用户和整个应用程序之间创建更流畅和异步的交互

尽管MVC可以用于这样的目的可能有争议,但不可否认的是,它并不是为构建不同类型客户所使用的服务而设计的框架

他们不一样吗? 如果我们看一下这两个框架的内部架构,我们可能会发现许多共同点和选择。这就是为什么许多人找不到他们之间的明确区别的主要原因。在不久的将来(它们现在处于测试阶段),它们将合并到ASP.NET核心中的单个框架(MVC6)中

当它们一起使用时 在我看来,没有多少用例需要您在单个项目中同时使用MVC和WebAPI。这背后的原因与UI呈现中采用的不同方法有关:在MVC中,Web应用程序页面是在服务器端呈现的,使用强类型的
ViewModel
,同时将呈现的一小部分委托给AJAX调用(但这些不应该是多数,否则你会发现你对框架的要求太高了)

在利用REST服务(如使用Web API创建的服务)的现代Web应用程序中,UI(几乎)完全呈现在客户端,因此几乎不需要服务器端呈现/模型绑定:您将组合服务器数据(如JSON格式)和静态资产(HTML、CSS3、JavaScript)组成UI在客户机上

当您需要以传统方式(使用MVC)提供Web应用程序时,组合这两个框架可能很有用,但您也需要向外部客户提供服务:您的用户将使用您的MVC应用程序,而其他服务将使用Web API端点(类似于Facebook、Twitter等)

另一个例子是一种混合方法,您可以在服务器端呈现网站的一部分(使用Razor),而站点最动态的部分则使用对web API端点的AJAX调用(例如,自动完成字段、异步调用)。但是,坦率地说,我认为这可能会导致毫无意义的复杂性,我会坚持使用MVC(如果需要,可以返回JSON对象)如果AJAX调用没有那么多的话

太长,读不下去了 如果您需要构建动态服务器端网站,请选择MVC。如果您需要构建由异构客户端(SPA、移动应用程序等)使用的富web应用程序,请选择web API。最后,如果您希望向独立的外部消费者公开服务,但希望自己使用较少的抽象层,请同时使用这两种方法

更多信息:


MVC5和Web Api之间有很大的重叠,这就是它们在MVC核心中“合并”的原因。我的经验法则是将MVC控制器用于HTML和Api控制器用于返回序列化数据,如JSON和XML。MVC应用程序呢