11
這是一個真正的頭部劃痕。我創建了我使用的JSON web服務2個ApiControllers: -WebApi控制器沒有發現控制器的動作
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/
完美的作品,訪問評論沒有任何變化。任何人都可以看到我在這裏錯過的任何明顯的東西嗎
幫助表示讚賞。
你可以發佈你正在使用的確切的URL以及錯誤消息和堆棧跟蹤嗎?猜測:你不是在航空公司或評論中發送信息,而「int」是值類型,它必須有一個值。將它們改爲'int?' – nemesv
我嘗試了以下URI:'/ api/reviews/get/ba','/ api/reviews/get /','/ api/reviews/get/1' ... I總是得到相同的輸出: - '{$ ID: 「1」, 消息:「沒有HTTP資源發現,請求URI的「http匹配://本地主機:88/ControlTower/API /評論/得/ 1'。「, MessageDetail:」在控制器上找不到與請求匹配的操作'評論'。「 }' – dooburt