Mam funkcję podobną strukturę do tego:Przechodząc listę int do HttpGet życzenie
[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
/* create model */
foreach(var id in listOfIds)
model.Add(GetValueForId(id)
/* create response for model */
return response;
}
Jednak, kiedy robić żądania GET dla metody:
{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2
otrzymuję błąd podczas debugowania stwierdzający, że listOfIds
ma wartość null. W naszym kontrolerze mamy wiele publicznych metod HttpGet, które działają dobrze, a po zmianie parametru na pojedynczy int działa. Próbowałem zmienić typ parametru na int[]
i IEnumerable<int>
, ale bez zmian.
Jednak, po zmianie wywołania na HttpPost i przekazaniu listy jako wartości x-www-form-urlencoded, metoda działa.
Czy można przekazać listę do metody Get, czy też będę musiał użyć Posta? Ponieważ w rzeczywistości nie jest to metoda post (zwraca model wartości JSON i nic nie jest zapisywane na serwerze).
Spójrz na [tę odpowiedź] (http://stackoverflow.com/a/2776855/706456). Bit wysyłania wygląda poprawnie, bity do czytania wymagają pewnych ulepszeń. I [jeszcze jeden] (http://stackoverflow.com/a/2301142/706456), gdzie wszystko wydaje się być proste. – oleksii
Próbowałem już podanego drugiego linku bez powodzenia, ale pierwszy doprowadził mnie do metody będącej połączeniem tego adresu URL z odpowiedzią @ C.B., Którą dodałem poniżej. Dzięki – StormPooper