Remove Querystring item in ASP.NET

If we try to remove/delete a query string directly using below code, we will get an error - collection is read-only.

Request.QueryString.Remove("QSname")

In order to solve above error problem, we need to write below code before we remove them.

// reflect to readonly property
PropertyInfo isreadonly = typeof(System.Collections.Specialized.NameValueCollection).GetProperty("IsReadOnly", BindingFlags.Instance | BindingFlags.NonPublic);

// make collection editable
isreadonly.SetValue(this.Request.QueryString, false, null);

// remove
this.Request.QueryString.Remove("QSname");

4 comments:

  1. Thanks for the post, very helpful!

    Just one thing, you're missing a left parenthesis after "typeof".

    ReplyDelete
  2. I am glad it helped you.
    Thanks for the catch. I have corrected it.

    ReplyDelete
  3. It is really a great work and the way in which u r sharing the knowledge is excellent.
    Thanks for helping me to understand basic concepts. As a beginner in dot net programming your post help me a lot.Thanks for your informative article.Dot Net training in chennai | Dot Net training institutes in chennai | Dot Net training in velachery

    ReplyDelete