2011-07-28 69 views
11

本工程以遍历所有表项:遍历Request对象键

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是不是一个采集。但很明显,请求对象有我想要循环访问的子项。我很确定这是可能的,我只是使用不好的语法。

在此先感谢!

回答

19

使用Request.Params

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

马克是正确的,这将工作,但它会返回在cookie中所有的钥匙,在形式的钥匙正在发送,并且键查询字符串和其他键值对被发送。我建议更具体。如果您收到一个对象后使用

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]); 
    }