Ich kann nicht scheinen, eine Antwort auf diese Frage zu finden, also poste ich es hier. Dies kann eine grundlegende Routing-Frage sein und vielleicht fehlt mir gerade etwas Offensichtliches. Ich habe ein WebAPI2-Projekt, das GetAll() -Methode in dem Controller hat. Ich verwende Attribut-Routing einschließlich eines RoutePrefix. Wenn ich die Methode mit Postman teste, funktioniert es einwandfrei http://localhost/api/v1/Suppressions und es gibt eine Liste von JSON aus meiner Mongo DB-Sammlung zurück. Zufällig während des Tests habe ich zufällig einen Parameter getestet und der URL hinzugefügt, dass ich einen Fehler "Die Ressource kann nicht gefunden werden" erhalten würde http://localhost/api/v1/Suppressions?name=abc, aber stattdessen die GetAll() Methode aufgerufen.WebAPI und Attribut-Routing
Während des Routings werden Parameter ignoriert und nur die URI verwendet (außer natürlich, ich habe eine Methode, die die Parameter wie Get (String-Name) genannt)? Wenn das der Fall ist, gibt es eine Route-Einschränkung, die ich meiner GetAll() -Methode hinzufügen muss, um den Fehler "die Ressource nicht gefunden werden" zu werfen, wenn jemand versehentlich die Methode mit einem Parameter oder einer Liste von Parametern aufgerufen?
Danke für die Antwort. Frage aber, wie würde ich es in meinem bestehenden Anruf behandeln, wenn meine Methode GetAll() Parameter nicht akzeptiert? Wie würde ich wissen, dass der Benutzer die API mit Parametern aufgerufen hat, wenn der Arbeitsplan denkt, dass es in Ordnung ist? – user2337213
Sie können den Abfrageparameterwert mithilfe von [HttpContext.Current.Request.QueryString] (https://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring (v = vs.110) abrufen. aspx). – returnsvoid
Ah, richtig. Danke für Ihre Hilfe! Beide Antworten waren hilfreich, aber ich akzeptiere diese Antwort aufgrund der Antwort, die besagt, dass Abfrageparameter beim Routing ignoriert werden, was die ursprüngliche Frage beantwortet. Und die Erinnerung, dass ich HttpContext.Current.Request.QueryString verwenden kann, um die Parameter abzurufen und 404 zurückgeben, falls gewünscht. – user2337213