1

我想在我的 Web API 控制器中创建一个自定义方法,因此我可以通过一个参数而不是只返回所有数据,例如我的控制器称为 StandingController,我想创建一个名为 GetStandingsBySeason(string season) 的方法。我已将 WebApiConfig 更改为如下所示:

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

        config.Routes.MapHttpRoute(
            "DefaultApiWithAction",
            "api/{controller}/{action}/{id}",
            new { id = RouteParameter.Optional }
        );

这是我的控制器中的方法:

public IEnumerable<StandingDTO> GetStandingsBySeason(string season)
    {
        return _repository.GetStandingsBySeason(season).Select(Mapper.Map<StandingDTO>);
    }

在我的前端,我这样称呼它:

$.getJSON("/api/standing/GetStandingsBySeason/2011", self.standings);

但是该方法永远不会被调用,任何人都可以阐明我做错了什么吗?

4

1 回答 1

2

看起来您的配置错误:您的模板是

"api/{controller}/{action}/{id}"

但是该方法获取了名为season的参数,因此您可以通过以下方式调用它:

$.getJSON("/api/standing/GetStandingsBySeason?season=2011", self.standings);

或者您可以将路由模板修改为

"api/{controller}/{action}/{season}"
于 2013-01-12T13:17:59.793 回答