C# 从API控制器调用自定义方法
我想在我的Web API控制器中创建一个自定义方法,这样就不必返回我可以传入参数的所有数据,例如,我的控制器名为StandingController,我想创建一个名为GetStandingBySeason(string season)的方法。我已将我的WebApiConfig更改为如下所示:C# 从API控制器调用自定义方法,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,我想在我的Web API控制器中创建一个自定义方法,这样就不必返回我可以传入参数的所有数据,例如,我的控制器名为StandingController,我想创建一个名为GetStandingBySeason(string season)的方法。我已将我的WebApiConfig更改为如下所示: config.Routes.MapHttpRoute( "DefaultApi", "api/{controller}/{id}",
config.Routes.MapHttpRoute(
"DefaultApi",
"api/{controller}/{id}",
new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
"DefaultApiWithAction",
"api/{controller}/{action}/{id}",
new { id = RouteParameter.Optional }
);
$.getJSON("/api/standing/GetStandingsBySeason/2011", self.standings);
以下是我的控制器中的方法:
public IEnumerable<StandingDTO> GetStandingsBySeason(string season)
{
return _repository.GetStandingsBySeason(season).Select(Mapper.Map<StandingDTO>);
}
但是这个方法从来没有被调用过,有人能解释一下我的错误吗?看起来您的配置是错误的:您的模板是错误的
"api/{controller}/{action}/{id}"
但是该方法获取名为seasure的参数,因此您可以按如下方式调用它:
$.getJSON("/api/standing/GetStandingsBySeason?season=2011", self.standings);
或者,您可以将管线模板修改为
"api/{controller}/{action}/{season}"