2013-01-03 72 views
2

任何人都可以看到我的路線配置有什麼問題嗎?我試圖打電話給我的網絡API控制器通過:mvc4 web api 404

localhost/Attribution/api/Client 

localhost/Attribution/api/Fund 

我有幾個控制器擴展ApiController稱爲ClientController和FundController。

這是我的路線配置。我總是得到HTTP 404 The resource cannot be found

GlobalConfiguration.Configuration.Routes.MapRoute(
    "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 


GlobalConfiguration.Configuration.Routes.MapHttpRoute(
    name: "test", 
     routeTemplate: "api/{controller}/{id}/{action}", 
     defaults: new 
    { 
      id = RouteParameter.Optional, 
       action = RouteParameter.Optional 
    }); 
+0

我一直在WebApi項目中遇到同樣的問題。有沒有想過你在做什麼錯了? –

回答

0

您需要包含一個操作,該操作應該在您的控制器中。正如所寫,url/api/Client不知道要調用什麼操作。相反,請嘗試:

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
    name: "test", 
     routeTemplate: "api/{controller}/{action}/{id}", 
     defaults: new 
    { 
      action = "Index", 
      id = RouteParameter.Optional 
    }); 

然後URL/api/Client應在控制器「客戶端」中調用動作「索引」。

+1

對於ApiController,這些操作都是來自httpRequest的動詞。所以api/Controller/Get會映射到HTTP Get請求,api/Controller/Post會映射到HTTP Post請求等等。 –