首页 新闻 会员 周边 捐助

请教获取url多参数的方法。【谢谢】

0
悬赏园豆:10 [已解决问题] 解决于 2011-01-26 17:50

      要做一些复杂查询,用request.Querystring获取url参数。

此时的问题的是:

      并不是所有参数都会挂在url后面,这时我就需要逐个判断request.Querystring回的值是否为空,如果不为空就加入条件列表。

      试想如果有10个参数需要传递,用我愚钝的方法就要判断10次,请高手指教是否有更为简便方式实现。

      谢谢。

ahjszll的主页 ahjszll | 初学一级 | 园豆:52
提问于:2011-01-26 16:33
< >
分享
最佳答案
0

每个都得判断,这个工作是要必须做地,至于怎么判断, 就得自己想好点的办法了..

收获园豆:2
架构师修行之路 | 菜鸟二级 |园豆:322 | 2011-01-26 17:02
谢谢,我这个问题可能太固执愚钝。结贴
ahjszll | 园豆:52 (初学一级) | 2011-01-26 17:49
其他回答(3)
0

string[] querykeys = new string[] { "a", "b", "c", "d" };
foreach (string s in querykeys)
{
if (!string.IsNullOrEmpty(HttpContext.Current.Request.QueryString[s]))
{
// add conditions;
}
}

 

收获园豆:2
I,Robot | 园豆:9783 (大侠五级) | 2011-01-26 16:44
谢谢,这样虽然使代码变少了,但还是要做n次判断,而且还多了一个循环。
支持(0) 反对(0) ahjszll | 园豆:52 (初学一级) | 2011-01-26 16:52
0

void AddToParameterList(IList parameters, string key) {

  if (!String.IsNullOrEmpty(Request.QueryString[key])) {

    parameters.Add(Request.QueryString[key]);

  }

}

//调用

IList parameters = new List();

AddToParameterList(parameters, "id");

AddToParameterList(parameters, "name");

AddToParameterList(parameters, "age");

 

抽一个函数出来基本就解决了吧

收获园豆:4
Gray Zhang | 园豆:17610 (专家六级) | 2011-01-26 16:48
谢谢,两位给了我一个新思路。
支持(0) 反对(0) ahjszll | 园豆:52 (初学一级) | 2011-01-26 16:54
0
System.Collections.Hashtable hash = new System.Collections.Hashtable();
System.Collections.Specialized.NameValueCollection nvc
= Request.QueryString;
for (int i = 0; i < nvc.Keys.Count; i++)
{ hash.Add(nvc.Keys[i].ToString(), Request[nvc.Keys[i].ToString()].ToString());
}

//在处理hash表里面的数据就可以了,或者创建观察者模式也可以
收获园豆:2
keepsilence | 园豆:457 (菜鸟二级) | 2011-01-26 17:20
谢谢,我这个问题可能太固执愚钝。结贴
支持(0) 反对(0) ahjszll | 园豆:52 (初学一级) | 2011-01-26 17:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册