Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
.NET Framework 3.5
HttpUtility Class
 ParseQueryString Method (String)

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Class Library
HttpUtility..::.ParseQueryString Method (String)

Parses a query string into a NameValueCollection using UTF8 encoding.

Namespace:  System.Web
Assembly:  System.Web (in System.Web.dll)
Visual Basic (Declaration)
Public Shared Function ParseQueryString ( _
    query As String _
) As NameValueCollection
Visual Basic (Usage)
Dim query As String
Dim returnValue As NameValueCollection

returnValue = HttpUtility.ParseQueryString(query)
C#
public static NameValueCollection ParseQueryString(
    string query
)
Visual C++
public:
static NameValueCollection^ ParseQueryString(
    String^ query
)
JScript
public static function ParseQueryString(
    query : String
) : NameValueCollection

Parameters

query
Type: System..::.String
The query string to parse.

Return Value

Type: System.Collections.Specialized..::.NameValueCollection
A NameValueCollection of query parameters and values.
ExceptionCondition
ArgumentNullException

query is nullNothingnullptra null reference (Nothing in Visual Basic).

The ParseQueryString method uses UTF8 format to parse the query string In the returned NameValueCollection, URL-encoded characters are decoded and multiple occurrences of the same query string parameter are listed as a single entry with a comma separating each value.

Security noteSecurity Note:

The ParseQueryString method uses query strings that might contain user input, which is a potential security threat. By default, ASP.NET Web pages validate that user input does not include script or HTML elements. For more information, see Script Exploits Overview.

The following code example demonstrates how to use the ParseQueryString method. Multiple occurrences of the same query string variable are consolidated in one entry of the returned NameValueCollection.

Visual Basic
<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)

    Dim currurl As String = HttpContext.Current.Request.RawUrl
    Dim querystring As String = Nothing

    ' Check to make sure some query string variables
    ' exist and if not add some and redirect.
    Dim iqs As Int32 = currurl.IndexOf("?".ToCharArray())
    If (iqs = -1) Then

      Dim redirecturl As String = currurl & "?var1=1&var2=2+2%2f3&var1=3"
      Response.Redirect(redirecturl, True)

      ' If query string variables exist, put them in
      ' a string.
    ElseIf (iqs >= 0) Then

      If (iqs < currurl.Length - 1) Then
        querystring = currurl.Substring(iqs + 1)
      End If

    End If

    ' Parse the query string variables into a NameValueCollection.
    Dim qscoll As NameValueCollection = HttpUtility.ParseQueryString(querystring)

    ' Iterate through the collection.
    Dim sb As New StringBuilder("<br />")
    For Each s As String In qscoll.AllKeys

      sb.Append(s & " - " & qscoll(s) & "<br />")

    Next s

    ' Write the result to a label
    ParseOutput.Text = sb.ToString()

  End Sub

</script>

<html  >
<head id="Head1" runat="server">
    <title>HttpUtility ParseQueryString Example</title>
</head>
<body>
    <form id="Form1" runat="server">
      Query string variables are:
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </form>
</body>
</html>

C#
<%@ Page Language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  protected void Page_Load(object sender, EventArgs e)
  {
    String currurl = HttpContext.Current.Request.RawUrl;
    String querystring = null ;

    // Check to make sure some query string variables
    // exist and if not add some and redirect.
    int iqs = currurl.IndexOf('?');
    if (iqs == -1)
    {
      String redirecturl = currurl + "?var1=1&var2=2+2%2f3&var1=3";
      Response.Redirect(redirecturl, true); 
    }
    // If query string variables exist, put them in
    // a string.
    else if (iqs >= 0)
    {
      querystring = (iqs < currurl.Length - 1) ? currurl.Substring(iqs + 1) : String.Empty;
    }

    // Parse the query string variables into a NameValueCollection.
    NameValueCollection qscoll = HttpUtility.ParseQueryString(querystring);

    // Iterate through the collection.
    StringBuilder sb = new StringBuilder("<br />");
    foreach (String s in qscoll.AllKeys)
    {
      sb.Append(s + " - " + qscoll[s] + "<br />");
    }

    // Write the result to a label.
    ParseOutput.Text = sb.ToString();

  }
</script>

<html  >
<head runat="server">
    <title>HttpUtility ParseQueryString Example</title>
</head>
<body>
    <form id="form1" runat="server">
      Query string variables are:
      <asp:Label  id="ParseOutput"
                  runat="server" />
    </form>
</body>
</html>

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0
Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker