真正令人头疼的是这个。我创建了两个ApiControllers,我将其用作JSON Web服务: -
namespace ControlTower.Controllers
{
public class AirlinesController : ApiController
{
private static IEnumerable<Airline> MapAirlines()
{
return (Jetstream.AirlineObject.GetAirlines()).Select(x => x);
}
[HttpGet]
public IEnumerable<Airline> GetAirlines()
{
return MapAirlines().AsEnumerable();
}
[HttpGet]
public Airline GetAirlineByCode(string code)
{
return Jetstream.AirlineObject.GetAirline(code);
}
}
}
和: -
namespace ControlTower.Controllers
{
public class ReviewsController : ApiController
{
private static IEnumerable<Review> MapReviews(int airline)
{
return (Jetstream.ReviewObject.GetReviews(airline)).Select(x => x);
}
[HttpGet]
public IEnumerable<Review> GetReviews(int airline)
{
return MapReviews(airline).AsEnumerable();
}
[HttpGet]
public Review GetReviewById(int review)
{
return Jetstream.ReviewObject.GetReview(review);
}
}
}
使用此路由: -
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/get/{code}",
defaults: new { code = RouteParameter.Optional }
);
虽然访问/api/airline/get/ba
或/api/airline/get/
效果很好,但访问评论的任何变体都不会。任何人都可以看到我在这里遗失的任何明显的东西吗?
非常感谢帮助。
答案 0 :(得分:19)
您的默认路由需要一个名为&#34; code&#34;的参数。您需要添加路由以接受名为airline和/或review的参数,或者明确告诉控制器参数的名称。
离。 / API /评论/获取?航空公司= 1