.NET Framework Class Library
UriBuilder..::.Query Property

Gets or sets any query information included in the URI.

Namespace:  System
Assembly:  System (in System.dll)
Syntax

Visual Basic (Declaration)
Public Property Query As String
Visual Basic (Usage)
Dim instance As UriBuilder
Dim value As String

value = instance.Query

instance.Query = value
C#
public string Query { get; set; }
Visual C++
public:
property String^ Query {
    String^ get ();
    void set (String^ value);
}
JScript
public function get Query () : String
public function set Query (value : String)

Property Value

Type: System..::.String
The query information included in the URI.
Remarks

The Query property contains any query information included in the URI. Query information is separated from the path information by a question mark (?) and continues to the end of the URI. The query information returned includes the leading question mark.

The query information is escaped according to RFC 2396.

Note   In version 1.0 and 1.1 of the .NET Framework, setting the Fragment property to any value, including nullNothingnullptra null reference (Nothing in Visual Basic), cleared the Query property, and setting the Fragment property to nullNothingnullptra null reference (Nothing in Visual Basic) or to String..::.Empty cleared the property. In version 2.0, however, the Fragment and Query properties are independent.

Note   Do not append a string directly to this property. If the length of Query is greater than 1, retrieve the property value as a string, remove the leading question mark, append the new query string, and set the property with the combined string.

Examples

The following example sets the Query property.

C#
            UriBuilder baseUri = new UriBuilder("http://www.contoso.com/default.aspx?Param1=7890");
            string queryToAppend = "param2=1234";

            if (baseUri.Query != null && baseUri.Query.Length > 1)
                baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend; 
            else
                baseUri.Query = queryToAppend; 
Visual C++
UriBuilder^ baseUri = gcnew UriBuilder 
    ("http://www.contoso.com/default.aspx?Param1=7890");
String^ queryToAppend = "param2=1234";
if (baseUri->Query != nullptr && baseUri->Query->Length > 1)
{
    baseUri->Query = baseUri->Query->Substring(1)+ "&" + queryToAppend;
}

else
{
    baseUri->Query = queryToAppend;
}
Platforms

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.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Tags :


Community Content

Freeman
This class is incomplete to be really useful
I wonder why this class do not offer real advantage to manipulate query string without always search in the ? and & and doing concatenation.
.QueryString[string] // retrive a querystring value just like in httprequest
.AppendQueryString(string query, string value); // add or replace a querystring to the url
.RemoveQueryString(string value); // remove a querystring in the url

Would be nice to have.

Developer22
I agree. Incomplete class.

This class lacks much of the querystring manipulation I need. Why can't I pass in a querystring and have the query automatically parsed and retrieve values from it?

I have to do all the string manipulation myself...


Page view tracker