Я пытаюсь заставить API-контроллер работать в веб-приложении ASP.NET MVC 4. Однако каждый запрос приводит к 404, и я в тупике.:/
У меня есть стандартный маршрут API-контроллера из шаблона проекта, определенного как:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
Регистрация вызывается в Global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
// Register API routes
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
У меня есть базовый API-контроллер:
namespace Website.Controllers
{
public class FavoritesController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new [] { "first", "second" };
}
// PUT api/<controller>/5
public void Put(int id)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
}
}
Теперь, когда я просматриваю localhost: 59900/api/Favorites, я ожидаю, что метод Получить будет вызван, но вместо этого я получаю 404 код состояния и следующий ответ:
<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:59900/api/Favorites'.
</Message>
<MessageDetail>
No type was found that matches the controller named 'Favorites'.
</MessageDetail>
</Error>
Любая помощь будет принята с благодарностью, я немного потеряю рассудок.:) Спасибо!