(我正在使用WebApi 4.0.20710.0,使用框架4.0。我不确定这是否重要,但我们还不允许将服务器升级到4.5)
我想做的就是这样打电话:
http://domain/api/Books/Outstanding/2013-01-01/2014-01-01
在我的ApiController
我有一个类似的方法:
/// <summary>
/// Get a list of books that were outstanding between the start and end dates.
/// </summary>
public IEnumerable<BookDto> GetOutstanding(DateTime start, DateTime end)
{
return _repository.GetOutstanding(start, end);
}
在我的RouteConfig
中,我有一条这样定义的路线:
routes.MapRoute(
name: "ActionWithStartAndEnd",
url: "{controller}/{action}/{start}/{end}"
);
然而这一切都不起作用。我最终得到的错误信息只是"No action was found on the controller 'Books' that matches the request."
我怀疑我做错了一些简单的事情,和/或一般都误解了一些关于路由的事情。我该怎么做?
答案 0 :(得分:1)
我是个白痴。
路由不属于RouteConfig,它属于WebApiConfig,它应采用以下形式:
config.Routes.MapHttpRoute(
name: "ActionWithStartAndEnd",
routeTemplate: "api/{controller}/{action}/{start}/{end}"
);