WebForms项目调用Web Api 2项目

时间:2014-02-13 10:10:43

标签: webforms asp.net-web-api

所以,我的解决方案中有几个项目,一个Web API 2,一个Web Forms项目。是否可以让Web窗体项目调用Web API控制器?

我想让Web API从数据库中完成所有提升,以便可以从Web或移动设备调用它。

这可能吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题:

  1. 将逻辑从Web API项目移动到另一个项目,例如一个类库。控制器和所有Web API特定部分保留在Web API项目中。在需要该功能的所有项目中使用该库(控制器中的Web API,WebForms,...)。您需要确保其他项目为功能提供有效的环境(例如,在身份验证和授权方面,您不应该让WebForms项目返回与同一用户的Web API不同的数据)。
  2. 从WebForms项目向Web API发出HTTP请求。
  3. 您还可以将WebForms项目中的项目引用添加到Web API项目,因为Web API项目还会生成可以引用的.NET程序集。
  4. 我赞成第一种方法,因为这可以节省您的HTTP请求,并且是一种非常直接的共享功能方式。如果不将控制器中的功能移动到其他类,我就不会选择#3选项,因为WebForms项目必须模仿有效的WebAPI环境才能让控制器正常工作。