web api 属性路由多个参数

web api attribute routing multiple parameters

我有一个方法定义如下

[Route("public/sites/GetAllForWeb")]
    [HttpGet]
    public IEnumerable<Domain.Site.Site> GetAllForWeb(DateTime date, int hour, string parameterCode = null)

然后调用如下(angular)

return this.http.get<Site[]>("public/sites/GetAllForWeb?date=" + date + "&hour=" + hour + ((parameterCode === undefined) ? "" : "&parameterCode=" + parameterCode)

不幸的是,调用不匹配任何控制器方法,我假设是因为 Route 属性中缺少参数。

应该如何修改 Route 属性以正确反映方法签名?

这个问题是我没有将 api 添加到 Route 属性 :/

出于某种原因,我的印象是 api

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

将添加到 Route 属性