2012-04-23 111 views
1

我試圖讓一個測試應用程序運行使用MVC的WEB API,但我無法得到它的工作。 我想要做的是發送一個GET請求,並作爲答覆從數據庫中獲取日誌記錄作爲響應。Web API路由錯誤

以下是我已經設置了:

的Global.asax.cs:(未修改)

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 

我的控制器被稱爲DBModelController:

public class DBModelController : ApiController 
{ 
    public IEnumerable<Log> GetAllLogs() 
    { 
     IDBModel DAO = new DBModelDAO(); 

     IList<Log> Logs = DAO.GetLogs(DateTime.Now, DateTime.Now); //this gives back Log objects 

     return Logs; 
    } 

} 

,我怎麼想它使用:

http://localhost:15339/api/logs - 並作爲回報,我得到一組序列化記錄

非常感謝你提前

回答

2

改變你的類LogsController

+0

omg!非常感謝你! – 2012-04-24 10:31:33

1

創建一個新的途徑,如果你沒有興趣改變控制器類名稱爲Logs

routes.MapHttpRoute(
    name: "log_route", 
    routeTemplate: "api/logs", 
    defaults: new { controller = "DBModel", action = "GetAllLogs" } 
); 

此路線應放置在默認路線之前。