ich eine Funktion in der Struktur ähnlich dieses:Passing eine Liste von int zu einem HttpGet Anfrage
[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
/* create model */
foreach(var id in listOfIds)
model.Add(GetValueForId(id)
/* create response for model */
return response;
}
Allerdings, wenn ich tun, um eine Get-Anfrage für die Methode:
{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2
ich ein Fehler beim Debuggen, dass listOfIds
ist null. In unserem Controller haben wir eine Reihe von öffentlichen HttpGet-Methoden, die gut funktionieren, und wenn der Parameter zu einem einzigen int geändert wird, funktioniert es. Ich habe versucht, zu dem Parametertyp int[]
und IEnumerable<int>
verändern, aber keine Änderung.
jedoch, wenn der Anruf zu einer Httppost ändern und Leiten der Liste als x-www-form-urlencoded Wert arbeitet das Verfahren.
Ist es möglich, eine Liste zu einem Get-Methode übergeben, oder muss ich Post benutzen? Da es sich nicht um eine Post-Methode handelt (da es ein JSON-Modell von Werten zurückgibt und nichts auf dem Server gespeichert wird).
Werfen Sie einen Blick auf [diese Antwort] (http://stackoverflow.com/a/2776855/706456). Das sendende Bit sieht korrekt aus, das Lesebit muss angepasst werden. Und [ein anderer] (http://stackoverflow.com/a/2301142/706456), wo alles einfach zu sein scheint. – oleksii
Ich hatte bereits versucht, den zweiten Link, den Sie geliefert haben, ohne Glück, aber der erste führte mich zu einer Methode, die eine Kombination aus dieser URL und der Antwort von @ C.B. ist, die ich unten hinzugefügt habe. Danke – StormPooper