ASP.NET Kern: [FromQuery] Nutzungs-und URL-format
Ich versuche zu verwenden [FromQuery] in meinem web-api und ich bin mir nicht sicher, wie es zu benutzen.
Hier ist die GetAllBooks () - Methode im controller:
[HttpGet]
[Route("api/v1/ShelfID/{shelfID}/BookCollection")]
public async Task<IActionResult> GetAllBooks(string shelfID, [FromQuery] Book bookinfo)
{
//do something
}
Hier ist das Buch-model-Klasse:
public class Book
{
public string ID{ get; set; }
public string Name{ get; set; }
public string Author { get; set; }
public string PublishDate { get; set; }
}
Ich bin verwirrt darüber, ob es der richtige Weg, um [FromQuery]. Ich dachte, die URL ist
https://localhost:xxxxx/api/v1/ShelfID/{shelfID}/BookCollection/IActionResult?ID="123"&Name="HarryPotter"
Aber die Pause ist nicht zu schlagen, mein controller-Methode, also dachte ich mir vielleicht die URL ist nicht korrekt. Irgendwelche Vorschläge? Danke!
InformationsquelleAutor superninja | 2018-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Namen der Methode und der Rückgabetyp werden völlig ignoriert, wenn Sie definieren Ihre route explizit über die Attribute wie.
IActionResult
nicht da sein sollte.Die richtige URL wäre:
https://localhost:xxxxx/api/v1/ShelfID/{shelfID}/BookCollection?ID="123"&Name="HarryPotter"
Darüber hinaus query-string-Bindung funktioniert nur aus der box für primitive Typen (string, int, etc). Zum binden einer Klasse an eine Abfrage-string, den Sie bräuchten eine benutzerdefinierte modelbinder, das ist ziemlich beteiligt.
Wäre es besser, nur ausdrücklich erklären, die Eigenschaften, die Sie übergeben wollen, in:
public async Task<IActionResult> Get([FromQuery] MyFilterModel _filters)
Siehe diesen link : tutorialsteacher.com/webapi/parameter-binding-in-web-apiInformationsquelleAutor Fred Kleuver