在现有 Asp.Net MVC 项目中包含 Web API

Include Web API in existing Asp.Net MVC project

我正在开发一个采用 asp.net mvc 架构的项目。我想通过 asp.net 网络 api 添加服务。如何将其合并到现有项目中?

对于ASP.NET MVC 4,最简单的方法是在Visual Studio 2015 中创建一个新的Web API 项目,并查看该项目是如何设置的。

基本上,您只需要从今天开始添加以下包,以及以下代码 -

套餐

Install-Package Microsoft.AspNet.WebApi
Install-Package Microsoft.AspNet.WebApi.Client
Install-Package Microsoft.AspNet.WebApi.Core
Install-Package Microsoft.AspNet.WebApi.WebHost

Global.asax.cs

public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        ...
        GlobalConfiguration.Configure(WebApiConfig.Register);
        ...
    }
}

App_Start/WebApiConfig.cs

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}

测试

public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }
}