当前位置:  开发笔记 > 编程语言 > 正文

如何从查询字符串中删除项目以进行重定向?

如何解决《如何从查询字符串中删除项目以进行重定向?》经验,为你挑选了2个好方法。

在我的基页中,我需要从查询字符串中删除一个项目并重定向.我不能用

Request.QueryString.Remove("foo")

因为该集合是只读的.有没有办法获取查询字符串(除了那一项)而不迭代整个集合并重新构建它?



1> Ziad..:

您可以通过处理原始查询字符串来避免触及原始查询字符串.然后,您可以将页面重定向到包含修改后的查询字符串的URL,如下所示:

    var nvc = new NameValueCollection();

    nvc.Add(HttpUtility.ParseQueryString(Request.Url.Query));

    nvc.Remove("foo");

    string url = Request.Url.AbsolutePath;

    for (int i = 0; i < nvc.Count; i++)
        url += string.Format("{0}{1}={2}", (i == 0 ? "?" : "&"), nvc.Keys[i], nvc[i]);

    Response.Redirect(url);

更新:

事实证明我们可以像这样简化代码:

    var nvc = HttpUtility.ParseQueryString(Request.Url.Query);

    nvc.Remove("foo");

    string url = Request.Url.AbsolutePath + "?" + nvc.ToString();

    Response.Redirect(url);



2> Ryan Farley..:

您必须重建网址然后重定向.像这样的东西:

string url = Request.RawUrl;

NameValueCollection params = Request.QueryString;
for (int i=0; i

    
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有