C# ASP MVC WebApi调用返回一个错误';未找到';

C# ASP MVC WebApi调用返回一个错误';未找到';,c#,asp.net-mvc,asp.net-web-api,asp.net-web-api-routing,C#,Asp.net Mvc,Asp.net Web Api,Asp.net Web Api Routing,Global.asax WebApi.Config 漫画控制器 使用系统; 使用System.Collections.Generic; 使用System.Linq; Net系统; 使用System.Net.Http; 使用System.Web.Http; 名称空间ComicNet.WebApi { 公共类ComicapicController:ApiController { //获取api/ 公共IEnumerable Get() { 返回新字符串[]{“value1”,“value2”}; }

Global.asax

WebApi.Config

漫画控制器

使用系统;
使用System.Collections.Generic;
使用System.Linq;
Net系统;
使用System.Net.Http;
使用System.Web.Http;
名称空间ComicNet.WebApi
{
公共类ComicapicController:ApiController
{
//获取api/
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api//5
公共字符串Get(int-id)
{
返回“值”;
}
//后api/
公共作废帖子([FromBody]字符串值)
{
}
//放置api//5
公共void Put(int id,[FromBody]字符串值)
{
}
//删除api//5
公共无效删除(int-id)
{
}
}
}

需要在MVC路由之前注册Web API路由

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace ComicNet.WebApi
{
    public class ComicApiController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<controller>/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<controller>
        public void Post([FromBody]string value)
        {
        }

        // PUT api/<controller>/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/<controller>/5
        public void Delete(int id)
        {
        }
    }
}

在MVC路由之前,需要注册Web API路由

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace ComicNet.WebApi
{
    public class ComicApiController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<controller>/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<controller>
        public void Post([FromBody]string value)
        {
        }

        // PUT api/<controller>/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/<controller>/5
        public void Delete(int id)
        {
        }
    }
}
protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    GlobalConfiguration.Configure(WebApiConfig.Register);//added this
}
class WebApiConfig
{
    public static void Register(HttpConfiguration configuration)
    {
        configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
            new { id = RouteParameter.Optional });
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace ComicNet.WebApi
{
    public class ComicApiController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/<controller>/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<controller>
        public void Post([FromBody]string value)
        {
        }

        // PUT api/<controller>/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/<controller>/5
        public void Delete(int id)
        {
        }
    }
}
protected void Application_Start() {
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);//moved higher up
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}