2009-09-29 9 views
5

Je veux tout cracher dans Request.Form donc je peux juste le renvoyer comme une chaîne et voir ce que j'ai affaire. J'ai essayé la mise en place d'une boucle ...Comment traverser Request.Form sans connaître les détails?

// 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; 
} 

Mais tout ce que je reviens est « 12 » et je sais qu'il ya beaucoup plus de choses sur la forme que ...

Répondre

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 C'est le seul :) –

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

Édition: Oh. Apparemment, vous devez obtenir hack the NameValueCollection pour le faire. C'est donc une mauvaise façon d'itérer sur la collection.

+0

La distribution spécifiée n'est pas valide. – BigOmega

3

OHHH J'ai compris mon problème, dans mon formulaire, la seule valeur que je reviens provient du seul contrôle d'entrée qui a un nom. Maintenant que je leur donne des noms, ça marche.