Passer des valeurs de tableau dans une requête HTTP en .NET

Quelle est la méthode standard pour passer et traiter un tableau dans une requête HTTP dans .NET? J’ai une solution, mais je ne sais pas si c’est la meilleure approche.

Voici ma solution:

Le gestionnaire ASHX reçoit le paramètre “user” sous forme de chaîne délimitée par des virgules. Vous pouvez facilement obtenir les valeurs en scindant la chaîne:

 public void ProcessRequest(HttpContext context) { ssortingng[] users = context.Request.Form["user"].Split(','); } 

J’ai donc déjà une réponse à mon problème: assignez plusieurs valeurs au même nom de paramètre, supposons que le gestionnaire ASHX le reçoive sous forme de chaîne délimitée par des virgules et scinde la chaîne. Ma question est de savoir si oui ou non c’est comme ça que ça se passe dans .NET

Quelle est la pratique habituelle pour cela? Existe-t-il un moyen plus simple de saisir les valeurs multiples en supposant que la valeur est délimitée par des virgules et en appelant Split () dessus? Est-ce ainsi que les tableaux sont généralement passés dans .NET ou XML est-il utilisé à la place?

Quelqu’un at-il une idée de savoir si c’est ou non la meilleure approche?

Il n’y a pas vraiment de standard, mais ce que vous utilisez en est le plus proche.

Toutefois, les valeurs ne sont en réalité pas envoyées sous forme de chaîne séparée par des virgules, elles sont envoyées sous forme de valeurs distinctes portant le même nom. Les données de formulaire de votre exemple ressembleront à ceci:

 user=Aaron&user=Bobby&user=Jimmy&user=Kelly&user=Simon&user=TJ 

Vous pouvez lire les valeurs sous forme de tableau directement comme ceci:

 ssortingng[] users = context.Request.Form.GetValues("user"); 

Si vous utilisez Form["user"] il concaténera les valeurs pour vous et vous devrez les scinder à nouveau. C’est juste une perte de temps, et cela se brise également si l’une des valeurs contient une virgule.

Si vous utilisez des cases à cocher ou une zone de liste à sélection multiple, un ensemble de valeurs séparées par des virgules est ce que vous obtenez automatiquement à partir de HTML. Ce que vous faites est parfaitement bien. Si vous générez un tableau dans votre javascript d’une autre manière, vous pouvez générer une chaîne séparée par des virgules, l’affecter à un champ caché et utiliser split () sur le serveur de la même manière. XML est certes une autre option, mais cela me semble complexe si tout ce que vous voulez faire est de transmettre un simple tableau de nombres ou de chaînes courtes. (Bien sûr, si les valeurs de chaîne que vous devez transmettre contiennent des virgules, cela gâcherait votre plan simple.)