akn*_*ds1 361 asp.net-mvc asp.net-mvc-4 asp.net-web-api visual-studio-2012
我希望将ASP.NET Web API添加到Visual Studio 2012中开发的ASP.NET MVC 4 Web应用程序项目中.我必须执行哪些步骤才能将正常运行的Web API添加到项目中?我知道我需要一个从ApiController派生的控制器,但这就是我所知道的.
如果我需要提供更多详细信息,请与我们联系.
akn*_*ds1 447
我需要执行的步骤是:
System.Web.Http.WebHost
.App_Start\WebApiConfig.cs
(请参阅下面的代码段).System.Web.Http
在Global.asax.cs
.WebApiConfig.Register(GlobalConfiguration.Configuration)
中MvcApplication.Application_Start()
(文件Global.asax.cs
),之前注册的默认Web应用程序的路线为,否则将优先.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 });
}
}
Run Code Online (Sandbox Code Playgroud)
的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);
}
Run Code Online (Sandbox Code Playgroud)
更新10.16.2015:
Word有它,必须安装NuGet包Microsoft.AspNet.WebApi才能使上述工作正常.
cde*_*sch 76
更新2013年11月22日 - 这是最新的WebApi包:
Install-Package Microsoft.AspNet.WebApi
Run Code Online (Sandbox Code Playgroud)
原始答案(这是一个较旧的WebApi包)
Install-Package AspNetWebApi
Run Code Online (Sandbox Code Playgroud)
更多细节.
khe*_*eya 64
在我的MVC 5项目中添加WebAPI.
打开NuGet包管理器consol并运行
PM> Install-Package Microsoft.AspNet.WebApi
Run Code Online (Sandbox Code Playgroud)添加对System.Web.Routing,System.Web.Net和System.Net.Http dlls的引用,如果不存在的话
右键单击控制器文件夹>添加新项> Web>添加Web API控制器
VS.将相应地修改Web.config
如果没有,则添加Application_Start(){}方法
protected void Application_Start()
{
//this should be line #1 in this method
GlobalConfiguration.Configure(WebApiConfig.Register);
}
Run Code Online (Sandbox Code Playgroud)添加以下类(我在global.asax.cs文件中添加)
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 }
);
}
}
Run Code Online (Sandbox Code Playgroud)相应地修改web api方法
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";
}
// GET api/<controller>/5 : url to use => api/vs/5
public string Get(int id)
{
return (id + 1).ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)重建和测试
构建一个简单的html页面
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="../<path_to_jquery>/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
var uri = '/api/vs';
$(document).ready(function () {
$.getJSON(uri)
.done(function (data) {
alert('got: ' + data);
});
$.ajax({
url: '/api/vs/5',
async: true,
success: function (data) {
alert('seccess1');
var res = parseInt(data);
alert('got res=' + res);
}
});
});
</script>
</head>
<body>
....
</body>
</html>
Run Code Online (Sandbox Code Playgroud)Teo*_*ahi 27
只要在控制器文件夹下添加"WebApi Controller",Visual Studio就会自动处理依赖关系;
Visual Studio已将ASP.NET Web API 2的完整依赖项添加到项目"MyTestProject"中.
项目中的Global.asax.cs文件可能需要进行其他更改才能启用ASP.NET Web API.
添加以下命名空间引用:
使用System.Web.Http; 使用System.Web.Routing;
如果代码尚未定义Application_Start方法,请添加以下方法:
protected void Application_Start(){}
将以下行添加到Application_Start方法的开头:
GlobalConfiguration.Configure(WebApiConfig.Register);
cuo*_*gle 22
您可以从nuget安装,如下图所示:
或者,在Package Manager控制台上运行以下命令行:
Install-Package Microsoft.AspNet.WebApi
Run Code Online (Sandbox Code Playgroud)
注意:这只是以上答案的缩写
打开NuGet软件包管理器控制台并运行
PM> Install-Package Microsoft.AspNet.WebApi
Run Code Online (Sandbox Code Playgroud)加入引用System.Web.Routing
,System.Web.Net
而System.Net.Http
如果已经不存在的DLL
添加以下课程
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 }
);
}
}
Run Code Online (Sandbox Code Playgroud)Application_Start
如果尚不存在,请添加方法(在global.asax.cs文件中)
protected void Application_Start()
{
//this should be line #1 in this method
GlobalConfiguration.Configure(WebApiConfig.Register);
}
Run Code Online (Sandbox Code Playgroud)右键单击controllers文件夹>添加新项> 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";
}
}
}
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
207355 次 |
最近记录: |