Ho una funzione simile nella struttura a questo:Passare un elenco di int ad una richiesta HttpGet
[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
/* create model */
foreach(var id in listOfIds)
model.Add(GetValueForId(id)
/* create response for model */
return response;
}
Tuttavia, quando faccio una richiesta GET per il metodo:
{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2
ottengo un errore durante il debug che afferma che listOfIds
è nullo. Nel nostro controller abbiamo un numero di metodi pubblici HttpGet che funzionano bene, e quando si modifica il parametro in un singolo int funziona. Ho provato a cambiare il tipo di parametro su int[]
e IEnumerable<int>
, ma nessuna modifica.
Tuttavia, quando si modifica la chiamata a un HttpPost e si passa l'elenco come valore x-www-form-urlencoded, il metodo funziona.
È possibile passare un elenco a un metodo Get o devo utilizzare Post? Dal momento che non è in realtà un metodo post (poiché restituisce un modello di valori JSON e nulla viene salvato sul server).
Dai un'occhiata a [questa risposta] (http://stackoverflow.com/a/2776855/706456). Il bit di invio sembra corretto, il bit di lettura ha bisogno di qualche ritocco. E [un altro] (http://stackoverflow.com/a/2301142/706456) dove tutto sembra essere semplice. – oleksii
Avevo già tentato il secondo collegamento fornito senza fortuna, ma il primo mi ha portato a un metodo che è una combinazione di quell'URL e la risposta di @ C.B., Che ho aggiunto di seguito. Grazie – StormPooper