UriBuilder.Query 属性

定义

获取或设置 URI 中包含的任何查询信息,包括前导“?”字符(如果不是空)。

public:
 property System::String ^ Query { System::String ^ get(); void set(System::String ^ value); };
public string Query { get; set; }
member this.Query : string with get, set
Public Property Query As String

属性值

URI 中包含的查询信息。

示例

以下示例设置 Query 属性。

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

if (baseUri.Query != null && baseUri.Query.Length > 1)
    // Note: In .NET Core and .NET 5+, you can simplify by removing
    // the call to Substring(), which removes the leading "?" character.
    baseUri.Query = baseUri.Query.Substring(1) + "&" + queryToAppend; 
else
    baseUri.Query = queryToAppend;
open System

let baseUri = UriBuilder "http://www.contoso.com/default.aspx?Param1=7890"
let queryToAppend = "param2=1234"

baseUri.Query <-
    if baseUri.Query <> null && baseUri.Query.Length > 1 then
        // Note: In .NET Core and .NET 5+, you can simplify by removing
        // the call to Substring(), which removes the leading "?" character.
        baseUri.Query.Substring 1 + "&" + queryToAppend 
    else
        queryToAppend

注解

Query 属性包含 URI 中包含的任何查询信息。 查询信息通过问号(?)与路径信息分开,并继续到 URI 的末尾。 返回的查询信息包括前导问号。 设置 Query 属性时:

  • 在 .NET Framework 中,问号始终位于字符串前面,即使字符串已以问号开头。
  • 在 .NET 5(和 .NET Core)及更高版本中,如果字符串尚不存在,则会在字符串前面附加问号。

查询信息根据 RFC 2396 进行转义。

注释

若要将值追加到 .NET Framework 中的现有查询信息,必须先删除前导问号,然后再使用新值设置属性。 这是因为.NET框架在设置属性时始终追加问号。 .NET 5(和 .NET Core)和更高版本可以容忍前导问号,并且仅在必要时追加一个。

适用于

另请参阅