2013-03-08 70 views
0

我想添加一個網絡API控制器到我的MVC項目。這是一個我已經升級到MVC4的MVC 3項目。我試圖讓「測試」簡單的api控制器工作,目前得到了404。以下是我所做的:404試圖使用網絡API端點

我已經添加了所有必需的軟件包。 我已經添加了我的WebAPI配置到我的全球的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 } 
      ); 
     } 
    } 

我在我的web應用程序定義的ApiController:

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

最後,當我建立一切,並瀏覽我的網站localhost http://localhost/api/Sitechanges,我得到了一個404.

如果我做一個文件/新項目並從頭創建一個web api項目,我沒有這些問題。誰能幫忙?

感謝

馬特

回答

0

它似乎是「正常」的路線之前添加網頁API配置修復它!

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

你的控制器必須在...Controller.cs結束。

例如:

Test.csTestControllerV2.cs將返回404
TestController.csTestV2Controller.cs將返回200

我看你做,但爲什麼沒有返回一個404搜索,當我遇到你的帖子出來。