2013-03-08 2 views
0

Я пытаюсь добавить контроллер веб-api в свой проект MVC. Это проект MVC 3, который я обновил до MVC4. Я пытаюсь заставить «тест» простой контроллер api работать и в настоящее время получать 404. Вот что я сделал:404 пытается использовать web api endpoint

Я добавил все необходимые пакеты. Я добавил мой WebAPI конфигурации к моему Global Application_Start():

RegisterGlobalFilters(GlobalFilters.Filters); 
RegisterRoutes(RouteTable.Routes); 
WebApiConfig.Register(GlobalConfiguration.Configuration); // Web 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 } 
      ); 
     } 
    } 

У меня есть ApiController определено в моем веб-приложение:

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

И, наконец, когда я построю все и перейду на сайт на localhost http://localhost/api/Sitechanges, я получаю 404.

Если я делаю файл/новый проект и создаю веб-проект api с нуля, у меня нет этих проблем. Может ли кто-нибудь помочь?

Благодаря

Matt

ответ

0

Кажется, добавив Web API конфигурации до "нормальных" маршрутов фиксирует это!

WebApiConfig.Register(GlobalConfiguration.Configuration); // Moved to the top 
RegisterGlobalFilters(GlobalFilters.Filters); 
RegisterRoutes(RouteTable.Routes); 
0

Ваш контроллер должен оканчиваться на ...Controller.cs.

Например:

Test.cs и TestControllerV2.cs возвратит 404.
TestController.cs и TestV2Controller.cs возвратит 200.

Я вижу твое делает, но я наткнулся на ваш пост при поиске почему 404 был возвращен ,