En passant une liste de int à un HttpGet demande

J'ai une fonction similaire dans sa structure à ceci:

[HttpGet]
public HttpResponseMessage GetValuesForList(List<int> listOfIds)
{
    /* create model */        

    foreach(var id in listOfIds)
        model.Add(GetValueForId(id)

    /* create response for model */
    return response;
}

Cependant, lorsque je fais une requête Get pour la méthode:

{{domain}}/Controller/GetValuesForList?listOfIds=1&listOfIds=2

J'obtiens une erreur lors du débogage indiquant que listOfIds est null. Dans notre contrôleur, nous avons un certain nombre de publics HttpGet méthodes qui fonctionnent bien, et en cas de changement de paramètre à un seul int il fonctionne. J'ai essayé de changer le type de paramètre à int[] et IEnumerable<int> trop, mais pas de changement.

Cependant, lors de la modification de l'appel à une HttpPost et le dépassement de la liste comme un x-www-form-urlencoded valeur, la méthode fonctionne.

Est-il possible de passer d'une liste à une méthode Get, ou devrai-je utiliser la Poste? Car il n'est pas vraiment une méthode post (car il renvoie un JSON modèle de valeurs et rien n'est enregistré sur le serveur).

  • Jetez un oeil à cette réponse. L'envoi bits semble correct, la lecture peu besoin de quelques ajustements. Et un autre où tout semble simple.
  • J'avais déjà tenté le deuxième lien que vous avez fourni avec pas de chance, mais le premier me conduisent à une méthode qui est une combinaison de l'adresse URL et la réponse par @C. B., auquel j'ai ajouté ci-dessous. Merci
InformationsquelleAutor StormPooper | 2013-06-10