Click here to Skip to main content
15,860,943 members
Articles / Web Development / ASP.NET
Tip/Trick

Remove Request QueryString Key Values for Redirection

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
23 Jun 2010CPOL 10.7K   1  
I wanted to make my page behave in two different modes based on the query string. However it was not strait forward. To make it possible I had to manipulate the URL query string to and remove a key and redirecting it back with a freshly creating URL.

Calling Page

C#
bool isKeyFound = false; // Vital to stop calling recursively
string newQueryString = AppHelper.GetNewQueryString (Request.QueryString,"refresh", out isKeyFound);
if (isKeyFound && newQueryString.Length > 0)
{
    Response.Redirect(Request.Path + "?" +newQueryString);
}


Called Method

C#
/// <summary>
/// Recreate a new URL by removing
/// </summary>
/// <param name="queryString">Page Requested string </param>
/// <param name="removeKey">The key to be removed</param>
/// <param name="isKeyFound">This will be a additional info returned</param>
/// <returns></returns>
public static string GetNewQueryString(System.Collections.Specialized.NameValueCollection queryString, string removeKey,out bool isKeyFound)
{
    string returnVal = string.Empty;
    isKeyFound = false ;
    //Build the new query string.
    for (int j = 0; j < queryString.Count; j++)
    {
        // Anything except the target key
        if (!queryString.GetKey(j).ToLower().Equals(removeKey.ToLower()))
        {
            returnVal += queryString.GetKey(j) + "=" + queryString.Get(j) + "&";
        }
        else
        {
            isKeyFound = true;
        }
    }
    //Remove the trailing '&'
    return returnVal.TrimEnd ('&');
}



Happy coding

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Comments and Discussions

 
-- There are no messages in this forum --