HttpUtility.ParseQueryString Method (String)
Parses a query string into a NameValueCollection using UTF8 encoding.
Namespace: System.Web
Assembly: System.Web (in System.Web.dll)
Parameters
- query
- Type: System.String
The query string to parse.
Return Value
Type: System.Collections.Specialized.NameValueCollectionA NameValueCollection of query parameters and values.
| Exception | Condition |
|---|---|
| ArgumentNullException | query is null. |
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 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.
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" > <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 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Security Note