首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用c#从asp.net中的查询字符串中删除项?

如何使用c#从asp.net中的查询字符串中删除项?
EN

Stack Overflow用户
提问于 2009-02-09 19:35:38
回答 13查看 114.3K关注 0票数 54

我想从我的url中删除"Language“querystring。我该怎么做呢?(使用Asp.net 3.5、c#)

代码语言:javascript
复制
Default.aspx?Agent=10&Language=2

我想删除"Language=2",但language将是第一个、中间或最后一个。所以我要这个

代码语言:javascript
复制
Default.aspx?Agent=20
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2009-02-09 19:59:44

我刚才回答了一个similar question。基本上,最好的方法是使用类HttpValueCollectionQueryString属性实际上是.NET框架的内部属性。您可以使用Reflector获取它(并将其放入您的Utils类中)。通过这种方式,您可以像处理NameValueCollection一样操作查询字符串,但所有的url编码/解码问题都会自行处理。

HttpValueCollection扩展了NameValueCollection,并具有一个接受编码的查询字符串(包括与号和问号)的构造函数,并且它覆盖了ToString()方法,以便稍后从底层集合重新构建查询字符串。

票数 10
EN

Stack Overflow用户

发布于 2009-02-09 19:51:37

如果它是HttpRequest.QueryString,那么您可以将集合复制到一个可写的集合中,并随心所欲地使用它。

代码语言:javascript
复制
NameValueCollection filtered = new NameValueCollection(request.QueryString);
filtered.Remove("Language");
票数 115
EN

Stack Overflow用户

发布于 2011-09-23 22:11:37

这里有一个简单的方法。不需要反射器。

代码语言:javascript
复制
    public static string GetQueryStringWithOutParameter(string parameter)
    {
        var nameValueCollection = System.Web.HttpUtility.ParseQueryString(HttpContext.Current.Request.QueryString.ToString());
        nameValueCollection.Remove(parameter);
        string url = HttpContext.Current.Request.Path + "?" + nameValueCollection;

        return url;
    }

这里需要QueryString.ToString(),因为Request.QueryString集合是只读的。

票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/529551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档