Ich bin neu in ASP.NET Webapi und ich kann keinen Weg finden, um eine Liste von Objekten zurückzugeben, die durch ID abgefragt werden.
Dies ist meine Controller-Methode für die GET-Anfrage. Ich möchte alle Fragen zurückgeben, die einen bestimmten FragebogenId über URL übergeben haben.
Ich habe es versucht:
%Vor%Das ist meine Fragenklasse:
%Vor% Aber auf return questions
wird der Compilerfehler angezeigt:
Der Typ
System.Linq.IQueryable<finah_backend.Models.Question>
kann nicht implizit inSystem.Web.Http.IHttpActionResult
konvertiert werden. Es gibt eine explizite Konvertierung (fehlt eine Besetzung?)
Ich möchte eine Liste von Fragen erhalten, die in JSON zurückgesendet werden, das auf der per FragebogenId abgefragt wurde, die über eine URL weitergegeben wird, d.h. api / questions / 2 == & gt; gibt mir alle Fragen mit fragebogenId = 2 zurück.
Sie verwenden das [ResponseType]
-Attribut, aber das dient nur zum Generieren von Dokumentation, siehe MSDN: ResponseTypeAttribute-Klasse :
Verwenden Sie dies, um den Entitätstyp anzugeben, der von einer Aktion zurückgegeben wird, wenn der deklarierte Rückgabetyp HttpResponseMessage oder IHttpActionResult ist. Der ResponseType wird von ApiExplorer beim Generieren von ApiDescription gelesen.
Sie können entweder den Rückgabetyp ändern (und das Attribut entfernen, da es nicht mehr benötigt wird, da die Rückgabedokumentation aus der tatsächlichen Signatur generiert wird):
%Vor%Oder wenn Sie möchten, dass es asynchron ist:
%Vor% Oder wickeln Sie das Ergebnis in ein IHttpActionResult
, was die Methode Request.CreateResponse<T>()
tut:
Letzteres ist für Sie erledigt, wenn Sie die Methode ApiController.Ok()
aufrufen:
Gib es einfach so zurück, dass du eine der schönen Methoden verwenden musst, die ApiController jetzt liefert.
Dies wird zusammen mit Ihrer Fragensammlung einen Statuscode von 200 zurückgeben.
%Vor%Verwenden Sie die Entität zunächst nicht direkt zum Bereitstellen von Daten. Erstellen Sie ein DTO für Ihre Entitäten:
%Vor%Dann könnte Ihre GET-Methode so aussehen:
%Vor%Ich empfehle auch, JSON für die Datenübertragung zu verwenden, da es ziemlich einfach ist, mit Javascript zu verwenden.
Ich denke, dass Sie nach einem ähnlichen Code wie folgt suchen:
%Vor%Tags und Links asp.net-web-api c# asp.net