WebApi-Controller keine Aktion gefunden wurde für den controller
Einem echten Kopf-scrather dieser. Erstellt habe ich zwei ApiControllers ich Sie als JSON-webservice:-
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);
}
}
}
Diesem routing:-
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/get/{code}",
defaults: new { code = RouteParameter.Optional }
);
Und während des Besuchs /api/airline/get/ba
oder /api/airline/get/
funktioniert perfekt, die den Besuch einer variation von Abgeben nicht. Jeder kann sehen, nichts wirklich offensichtlich fehlt mir hier?
Hilfe ist willkommen.
Kannst du die genauen urls, was Sie verwenden, und auch die Fehlermeldung und stacktrace, wenn es irgendeine? Erraten: Sie senden nicht in einer Fluggesellschaft oder abgeben und
Ich habe versucht, die folgenden URIs:
int
ist-Wert geben, es muss einen Wert haben. Ändern Sie int?
Ich habe versucht, die folgenden URIs:
/api/reviews/get/ba
, /api/reviews/get/
, /api/reviews/get/1
... ich bekomme immer die gleiche Ausgabe:- { $id: "1", Message: "No HTTP resource was found that matches the request URI 'http://localhost:88/ControlTower/api/reviews/get/1'.", MessageDetail: "No action was found on the controller 'Reviews' that matches the request." }
InformationsquelleAutor dooburt | 2012-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre default-route erwartet einen parameter mit dem Namen "code". Sie müssen entweder eine route Hinzugefügt zu akzeptieren einen parameter mit dem Namen der Fluggesellschaft und/oder abgeben, oder explizit sagen, der controller ist der name des Parameters.
ex. /api/Bewertungen/bekommen?Fluggesellschaft=1
InformationsquelleAutor Jason Bouchard