我怎样才能从asp.net使用C#中的查询字符串中删除项目?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我想从我的网址中删除“语言”查询字符串。我怎样才能做到这一点 ?(使用Asp.net 3.5,C#)

Default.aspx?Agent=10&Language=2

我想删除“语言= 2”,但语言会是第一个,中间或最后一个。所以我会有这个

Default.aspx?Agent=20
提问于
用户回答回答于

基本上,最好的办法是使用类HttpValueCollection,它的QueryString属性实际上,不幸的是它是在.NET框架内。可以使用Reflector来抓取它(并将其放入Utils类中)。这样你可以像查询NameValueCollection一样操作查询字符串,但是所有的url编码/解码问题都会照顾你。

HttpValueCollection扩展NameValueCollection并具有构造函数,该构造函数接受一个编码的查询字符串(包含&符号和问号),并覆盖一个ToString()方法以便稍后从基础集合重建查询字符串。

用户回答回答于

如果它是HttpRequest.QueryString,那么你可以将这个集合复制到一个可写的集合中,然后用它来实现。

NameValueCollection filtered = new NameValueCollection(request.QueryString);
filtered.Remove("Language");

扫码关注云+社区