2009-09-29 21 views
5

Quiero escupir todo en Request.Form, así que puedo devolverlo como una cadena y ver a qué me refiero. Probé la creación de un bucle for ...¿Cómo atravesar Request.Form sin conocer ningún detalle?

// Order/Process 
// this action is the submit POST from the pricing options selection page 
// it consumes the pricing options, creates a new order in the database, 
// and passes the user off to the Edit view for payment information collection 

[AcceptVerbs(HttpVerbs.Post)] 
public string Process() 
{ 
    string posted = ""; 
    for(int n = 0;n < Request.Form.Count;n++) 
     posted += Request.Form[n].ToString(); 
    return posted; 
} 

Pero lo único que recibo de vuelta es '12' y sé que hay muchas más cosas en la forma que eso ...

Respuesta

13
StringBuilder s = new StringBuilder(); 
foreach (string key in Request.Form.Keys) 
{ 
    s.AppendLine(key + ": " + Request.Form[key]); 
} 
string formData = s.ToString(); 
10
foreach(string key in Request.Form.Keys) 
{ 
    posted += Request.Form[key].ToString(); 
} 
+0

+1 Esa es la :) :) –

0
foreach(KeyValuePair<string, string> kvp in Request.Form){ 
    posted += kvp.Key + ":" + kvp.Value + "\n"; 
} 

Editar: Oh. Aparentemente tienes que hack the NameValueCollection para hacerlo. Entonces esta es una mala forma de iterar sobre la colección.

+0

El lanzamiento especificado no es válido. – BigOmega

3

OHHH Descubrí mi problema, en mi forma el único valor que sigo recibiendo es del único control de entrada que tiene un NOMBRE. Ahora que les doy nombres, está funcionando.

Cuestiones relacionadas