Possible de passer d'une liste d'entier par le biais de l'api web ou dois-je utiliser une chaîne de param
J'ai un scénario où je dois envoyer plusieurs ProductIds dans une Requête GET à mon API Web.
Dans mon asp.net web api contrôleur est-il un moyen que je peux faire les param de mon Action de la méthode de type List<int> productIds
. Je suis en supposant que non, j'ai passer comme ça ?ProductIds=1,2,3 et l'accepter comme string productIds
.
S'il vous plaît laissez-moi savoir si il ya une meilleure façon.
OriginalL'auteur Blake Rivell | 2016-07-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez indiquer que vous êtes va être l'acceptation d'un
int[]
que votre paramètre et API Web doit gérer la cartographie de la chaîne délimitée par des virgules d'un tableau comme prévu. Vous devrez peut-être inclure le[FromUri]
attribut de laisser l'API Web savons que vous attendez de ces valeurs à partir de la querystring :Vous pourrait également indiquer que les valeurs multiples sont mappés à la même chaîne de requête de paramètre via :
La chaîne délimitée par des virgules approche que vous utilisez doit très bien fonctionner ou vous pouvez utiliser la deuxième méthode que j'ai fourni (c'est à dire répétées paramètres querystring). Filip Woj a un post de blog sur ce sujet qui va en un peu plus de détails et utilise même un classeur personnalisé pour gérer les valeurs délimitées par des virgules.
Savez-vous pourquoi, si je ne passe pas le param à tous la liste est de venir en instancié avec un nombre de 0? Je m'attends à être null.
Va
[FromUri]
aider dans le transfert d'un grand nombre de données, comme la liste de 1000 éléments, ne serait-il pas la lourdeur de l'envoyerCela ne fonctionne pas pour une liste séparée par des virgules, comme décrit.
OriginalL'auteur Rion Williams