如何在不知道任何细节的情况下遍历Request.Form?

时间:2009-09-29 15:10:38

标签: c# asp.net request.form

我想吐出Request.Form中的所有内容,所以我可以将它作为字符串返回,看看我在处理什么。我尝试设置for循环......

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

但是我所有回来的都是“12”,我知道表格上还有很多东西比......

4 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:10)

foreach(string key in Request.Form.Keys)
{
  posted += Request.Form[key].ToString();
}

答案 2 :(得分:3)

OHHH我想出了我的问题,在我的表单中,我一直回来的一个值来自唯一具有NAME的输入控件。现在我给他们起了名字,它正在发挥作用。

答案 3 :(得分:0)

foreach(KeyValuePair<string, string> kvp in Request.Form){
   posted += kvp.Key + ":" + kvp.Value + "\n";
}
编辑:哦。显然你必须hack the NameValueCollection才能做到这一点。所以这是迭代集合的一种坏方法。