【发布时间】:2012-10-25 08:41:08
【问题描述】:
[HttpGet]
[ActionName("all")]
public HttpResponseMessage GetAllCompetitions()
{
return Request.CreateResponse(HttpStatusCode.OK, Repository.FindAll());
}
[HttpGet]
[ActionName("GetCompetition")]
public HttpResponseMessage GetCompetitionById(long id)
{
Competition competition = Repository.FindById(id);
if (competition == null)
{
return Request.CreateResponse(HttpStatusCode.NotFound);
}
return Request.CreateResponse(HttpStatusCode.OK, competition);
}
[HttpGet]
[ActionName("format")]
public HttpResponseMessage format(string postedFormat)
{
CompetitionMediaFormat format = (CompetitionMediaFormat)Enum.Parse(typeof(CompetitionMediaFormat), postedFormat, true);
return Request.CreateResponse(HttpStatusCode.OK, Repository.FindByFormat(format));
}
我可以点击前两个 get 方法,但是当我点击“格式”方法时,我得到一个 404 Not found 错误
客户端应用调用
var response = await client.GetAsync("api/Competition/format/music");
路由配置
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
请告诉我哪里出错了?
【问题讨论】:
标签: c# asp.net-web-api