我想在我的Web API控制器中创建一个自定义方法,所以不是只返回我可以在参数中传递的所有数据,例如我的控制器名为StandingController,我想创建一个名为GetStandingsBySeason(字符串季节)的方法。我已将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);
但这个方法永远不会被调用,任何人都可以对我做错了吗?
答案 0 :(得分:2)
看起来您的配置错误:您的模板是
"api/{controller}/{action}/{id}"
但该方法获取了名为season的参数,因此您可以按以下方式调用它:
$.getJSON("/api/standing/GetStandingsBySeason?season=2011", self.standings);
或者您可以将路线模板修改为
"api/{controller}/{action}/{season}"