我希望将ASP.NET Web API添加到在Visual Studio2012中开发的ASP.NET MVC4 Web应用程序项目中。我必须执行哪些步骤才能向项目中添加一个正常工作的Web API?我知道我需要一个从ApiController派生出来的控制器,但这就是我所知道的全部。
null
我需要执行的步骤是:
然后,我可以从教程(您的第一个ASP.NET Web API)中学到足够的知识来定义我的API控制器。
App_StartWebAPiconfig.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
null
Install-Package AspNetWebApi
null
null
>
添加对 右键单击“控制器”文件夹;添加新项目(&>web(&>;添加Web API控制器 web.config将由VS进行相应修改 如果 添加以下类(我在global.asax.cs文件中添加) null 重建和测试 构建一个简单的html页面PM> Install-Package Microsoft.AspNet.WebApi
protected void Application_Start()
{
//this should be line #1 in this method
GlobalConfiguration.Configure(WebApiConfig.Register);
}
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 }
);
}
}
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();
}
}
}
<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>