2012-04-23 2 views
1

Я пытаюсь запустить тестовое приложение с использованием MVC WEB API, но я не могу заставить его работать. Что я хочу сделать, это отправить запрос GET и в качестве ответа получить записи журнала из базы данных в качестве ответа.Ошибка маршрутизации веб-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! Большое спасибо! –

1

Создать новый маршрут, если вы не заинтересованы, чтобы изменить имя класса контроллера в Logs.

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

Этот маршрут должен быть размещен перед маршрутами по умолчанию.

Смежные вопросы