1

我正在尝试使用 MVC WEB API 运行一个测试应用程序,但我无法让它工作。我想要做的是发送一个 GET 请求并作为答案从数据库中获取日志记录作为响应。

这是我设置的:

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 -- 作为回报,我得到一组序列化记录

非常感谢你

4

2 回答 2

2

将您的课程更改为 LogsController

于 2012-04-23T13:58:48.407 回答
1

如果您不想将控制器类名称更改为Logs.

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

这条路线应该放在默认路线之前。

于 2012-04-23T14:54:05.613 回答