我想增加一个ASP。NET Web API到ASP。NET MVC 4 Web应用程序项目,在Visual Studio 2012开发。我必须执行哪些步骤才能将功能正常的Web API添加到项目中?我知道我需要一个从ApiController派生的控制器,但这就是我所知道的全部。
如果我需要提供更多细节,请告诉我。
我想增加一个ASP。NET Web API到ASP。NET MVC 4 Web应用程序项目,在Visual Studio 2012开发。我必须执行哪些步骤才能将功能正常的Web API添加到项目中?我知道我需要一个从ApiController派生的控制器,但这就是我所知道的全部。
如果我需要提供更多细节,请告诉我。
当前回答
更新11/22/2013 -这是最新的WebApi包:
Install-Package Microsoft.AspNet.WebApi
原始答案(这是一个较旧的WebApi包)
Install-Package AspNetWebApi
更多的细节。
其他回答
你可以从nuget安装如下图所示:
或者,在包管理器控制台中运行以下命令行:
Install-Package Microsoft.AspNet.WebApi
我也有同样的问题,解决方法很简单
右击soltion 安装Microsoft.ASP.NET.WebApi从“管理Nuget包Sulotion”
就是这样;)
注意:这只是上面这个答案的缩写
Open NuGet Package manager console and run PM> Install-Package Microsoft.AspNet.WebApi Add references to System.Web.Routing, System.Web.Net and System.Net.Http dlls if not there already Add the following class public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } } Add Application_Start method if not there already (in global.asax.cs file) protected void Application_Start() { //this should be line #1 in this method GlobalConfiguration.Configure(WebApiConfig.Register); } Right click controllers folder > add new item > web > Add Web API controller namespace <Your.NameSpace.Here> { public class VSController : ApiController { // GET api/<controller> : url to use => api/vs public string Get() { return "Hi from web api controller"; } } }
我需要执行的步骤是:
添加对System.Web.Http.WebHost的引用。 添加App_Start\WebApiConfig.cs(参见下面的代码片段)。 在Global.asax.cs中导入命名空间System.Web.Http。 在注册默认的Web应用程序路由之前,调用MvcApplication.Application_Start()(在Global.asax.cs文件中)中的WebApiConfig.Register(GlobalConfiguration.Configuration)。 添加一个来自System.Web.Http.ApiController的控制器。
然后,我可以从教程(你的第一个ASP。NET Web API)定义我的API控制器。
App_Start \ WebApiConfig.cs:
using System.Web.Http;
class WebApiConfig
{
public static void Register(HttpConfiguration configuration)
{
configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
}
}
Global.asax.cs:
using System.Web.Http;
...
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
WebApiConfig.Register(GlobalConfiguration.Configuration);
RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
更新10.16.2015:
Word有它,NuGet包Microsoft.AspNet.WebApi必须安装以上工作。
更新11/22/2013 -这是最新的WebApi包:
Install-Package Microsoft.AspNet.WebApi
原始答案(这是一个较旧的WebApi包)
Install-Package AspNetWebApi
更多的细节。