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");

2 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