Csharp/C#教程:同一解决方案中的MVC和Web Api项目分享


同一解决方案中的MVC和Web Api项目

我有一个MVC 4项目坐在N层应用程序的顶部。 我现在要求能够以编程方式使用应用程序。 我在同一个解决方案中创建了一个新的Web Api项目,它位于MVC项目的旁边,再次位于N层应用程序的顶部。

但我不清楚这一切是如何起作用的,因为MVC层是启动项目:它设置我的DI,自动播放器等,并且是我部署到服务器的项目。

那么这一切应该怎么设置呢? 我可以设置我的MVC项目来将所有/ api请求路由到新的Web Api项目吗? 或者Web Api项目是否需要单独部署?

我不想做任何非常规的事情,所以如果有更常见的方式来设置这个,请指出我正确的方向。

谢谢。

WebApi是Microsoft的另一种面向服务的应用程序,就像WCF一样。 但是WCF使用SOAP协议,而WebAPI使用HTTP协议进行通信。

因此,如果您使用WCF为MVC应用程序提供服务,您将单独托管该wcf服务并通过MVC应用程序使用其服务,这与您必须单独托管WebAPI项目并为Web应用程序(MVC)提供服务的方式完全相同。

出于某些原因,如果您希望它们(MVC和WebAPI)在同一项目中使用,请遵循本文中的此规则。

https://odetocode.com/blogs/scott/archive/2013/07/01/on-the-coexistence-of-asp-net-mvc-and-webapi.aspx

我昨天也做了同样的事情。 我在同一个MVC 4项目中有常规的Controllers和ApiControllers。

您需要在Global Asax for WebApi中添加路由:

WebApiConfig.Register(GlobalConfiguration.Configuration); 

看一下WebApiConfig:

 public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } 

不要忘记为WebApi添加Nuget包(如果你还没有它们)。 在我的情况下,我没有他们,因为我的项目最初是MVC 3,后来升级了。

您只需将路由和API控制器添加到现有的MVC站点,它们将在site/api/

上述就是C#学习教程:同一解决方案中的MVC和Web Api项目分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1026721.html

(0)
上一篇 2022年1月9日
下一篇 2022年1月9日

精彩推荐