将Web API添加到现有的asp.net Web表单应用程序

Tal*_*ood 17 asp.net asp.net-mvc-4 asp.net-web-api

我的团队想要从WCF升级到Web API.我们有一个工作的asp.net Web表单应用程序,我们已经从VS2010导入到VS2012.到现在为止还挺好.

但是现在当我尝试创建一个单独的Web API项目时,我发现没有可用的Web API模板.我能找到的最接近的东西是创建一个MVC 4应用程序并将项目模板设置为WebAPI.我遵循这种方式,一切都完美无缺.我有一个带有示例控制器的工作API,我可以通过从浏览器调用来调用它.

唯一的缺点是,这种特殊方法带来了自己的包袱.我创建的MVC 4项目包含JQUERY和其他库,以及一些我可能不需要的其他文件夹.我想要的只是Web API结构 - 而不是额外的行李.

我尝试使用在线搜索找到一个模板,但我找到的包不能正常工作,而且评级很差. 在此输入图像描述

我希望我已经正确地说明了我的问题.我现在期待一些反馈:)谢谢.

Rya*_*yle 24

在Visual Studio 2013中

  1. 右键单击ASP.NET Web窗体项目.
  2. 添加 - > 添加脚手架项目......
  3. 在Installed/Common/MVC/Web API下,选择您要使用的脚手架类型.
  4. 按照脚手架模板的说明进行操作.例如,当您选择"具有读/写操作的Web API 2控制器"或"Web API 2控制器 - 空"时,系统将提示您输入控制器名称
  5. 然后,您需要将最近创建的控制器移动到最近创建的Controllers文件夹中.

结果

从我所看到的,Visual Studio执行以下操作:

  • 创建" App_Start/WebApiConfig2.cs ".
  • Controllers文件夹已创建.
  • 编辑Web.config以在"system.webServer"中添加内容"handlers"元素.
  • 添加以下参考:
    • System.Net.Http
    • System.Net.Http.Formatting
    • System.Web.Extensions程序
    • System.Web.Http
    • System.Web.Http.WebHost
  • packages.config更新为包括:
    • "Microsoft.AspNet.WebApi"
    • "Microsoft.AspNet.WebApi.Client"
    • "Microsoft.AspNet.WebApi.Core"
    • "Microsoft.AspNet.WebApi.WebHost"

笔记

随后,我建议执行相同的步骤,首先右键单击Controllers文件夹而不是项目.这会将新控制器放在Controllers文件夹中而不是根级别.

按照上述步骤后,Visual Studio自述文件:

Visual Studio已将ASP.NET Web API 2的完整依赖项添加到项目"RowersCode.Web"中.

项目中的Global.asax.cs文件可能需要进行其他更改才能启用ASP.NET Web API.

  1. 添加以下命名空间引用:

    • 使用System.Web.Http;
    • 使用System.Web.Routing;
  2. 如果代码尚未定义Application_Start方法,请添加以下方法:

    protected void Application_Start()

    {

    }

  3. 将以下行添加到Application_Start方法的开头:

    GlobalConfiguration.Configure(WebApiConfig2.Register);

  • 在 VS2015 中它是“New Scaffolded Item...” (2认同)