with net example asp array c# .net arrays http request

c# - example - Pasando valores de matriz en una solicitud HTTP en.NET



http response request c# (2)

¿Cuál es la forma estándar de pasar y procesar una matriz en una solicitud HTTP en .NET? Tengo una solución, pero no sé si es el mejor enfoque.

Aquí está mi solución:

<form action="myhandler.ashx" method="post"> <input type="checkbox" name="user" value="Aaron" /> <input type="checkbox" name="user" value="Bobby" /> <input type="checkbox" name="user" value="Jimmy" /> <input type="checkbox" name="user" value="Kelly" /> <input type="checkbox" name="user" value="Simon" /> <input type="checkbox" name="user" value="TJ" /> <input type="submit" value="Submit" /> </form>

El controlador ASHX recibe el parámetro "usuario" como una cadena delimitada por comas. Puedes obtener los valores fácilmente dividiendo la cadena:

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

Por lo tanto, ya tengo una respuesta a mi problema: asigne varios valores al mismo nombre de parámetro, suponga que el controlador ASHX lo recibe como una cadena delimitada por comas y divide la cadena. Mi pregunta es si esto es o no cómo se hace normalmente en .NET.

¿Cuál es la práctica estándar para esto? ¿Hay una forma más sencilla de capturar los múltiples valores que asumir que el valor está delimitado por comas y llamar a Split () en él? ¿Es así como las matrices se pasan típicamente en .NET, o se usa XML en su lugar?

¿Alguien tiene alguna idea de si este es o no el mejor enfoque?


Realmente no hay un estándar, pero lo que estás usando es lo más cercano a él.

Sin embargo, los valores en realidad no se envían como una cadena separada por comas, se envían como valores separados con el mismo nombre. Los datos de formulario de su ejemplo se verán así:

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

Puedes leer los valores como una matriz directamente así:

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

Si usa el Form["user"] , concatenará los valores por usted y tendrá que dividirlos nuevamente. Esto es solo una pérdida de tiempo y también se rompe si alguno de los valores contiene una coma.


Si está utilizando casillas de verificación o un cuadro de lista de selección múltiple, un conjunto de valores separados por comas es lo que obtiene automáticamente de html. Lo que estás haciendo está perfectamente bien. Si genera una matriz en su javascript de alguna otra manera, podría generar una cadena separada por comas y asignarla a un campo oculto, y usar split () en el servidor de la misma manera. XML es ciertamente otra opción, pero me parece complejo si todo lo que quieres hacer es pasar una simple serie de números o cadenas cortas. (Por supuesto, si los valores de cadena que necesita pasar contienen comas, esto arruinaría su simple plan).