循环通过Request对象键

时间:2011-07-28 17:19:05

标签: c# asp.net

这可以遍历所有Form键:

foreach (string s in Request.Form.Keys )        
        {       
            Response.Write(s.ToString() + ":" + Request.Form[s] + "<br>");      
        }

但是,我想遍历所有的请求键:

foreach (string s in Request )      
        {       
            Response.Write(s.ToString() + ":" + Request[s] + "<br>");       
        }

问题是request.keys不是集合。但很明显,请求对象有孩子,我想循环。我很确定这是可能的,我只是使用了错误的语法。

提前感谢!

2 个答案:

答案 0 :(得分:22)

使用Request.Params

foreach (string s in Request.Params.Keys )     
{       
    Response.Write(s.ToString() + ":" + Request.Params[s] + "<br>");       
}

答案 1 :(得分:1)

标记是正确的,这将起作用,但它将返回cookie中的所有密钥,正在发送的表单中的密钥,以及查询字符串中的密钥和正在发送的其他密钥值对。我建议更具体一点。如果您收到Post对象,请使用

   Dictionary<string, string> _properties;
    foreach (string f in report.Form.Keys)
    {
        _properties.Add(f, report.Form[f]);
    }

和获取页面使用

    foreach(string s in report.QueryString.Keys)
    {
        _properties.Add(s,report.QueryString[s]);
    }