Beispiel #1
0
        /// <summary>
        /// 从指定的 URI 删除所有参数,只保留问号“?”之前的部分或者按照参数选择是否保留页面内部定位标记。
        /// </summary>
        /// <param name="uri">一个可能包含参数的 uri 字符串。</param>
        /// <returns>已经去除参数的 uri 字符串。</returns>
        /// <example>
        /// <para lang="C#">
        /// <![CDATA[
        /// 下面的代码演示了如何使用这个方法清除 URL“http://www.thinksea.com/default.aspx?id=1&name=thinksea”的参数部分:
        /// ]]>
        /// </para>
        /// <code lang="C#">
        /// <![CDATA[this.Response.Write(Thinksea.Web.ClearUriParameter("http://www.thinksea.com/default.aspx?id=1&name=thinksea"));
        /// ]]>
        /// </code>
        /// <para lang="C#">
        /// 输出结果:
        /// <br/>http://www.thinksea.com/default.aspx
        /// </para>
        /// </example>
        public static string ClearUriParameter(string uri)
        {
            var r = UriExtTool.Create(uri);

            r.ClearUriParameter(false);
            return(r.ToString());
        }
Beispiel #2
0
        /// <summary>
        /// 从指定的 URI 删除所有参数,只保留问号“?”之前的部分或者按照参数选择是否保留页面内部定位标记。
        /// </summary>
        /// <param name="uri">一个可能包含参数的 uri 字符串。</param>
        /// <param name="retainSharp">指示是否应保留页面内部标记(井号后的内容)。</param>
        /// <returns>已经去除参数的 uri 字符串。</returns>
        /// <example>
        /// <para lang="C#">
        /// <![CDATA[
        /// 下面的代码演示了如何使用这个方法清除 URL“http://www.thinksea.com/default.aspx?id=1&name=thinksea”的参数部分:
        /// ]]>
        /// </para>
        /// <code lang="C#">
        /// <![CDATA[this.Response.Write(Thinksea.Web.ClearUriParameter("http://www.thinksea.com/default.aspx?id=1&name=thinksea", false));
        /// ]]>
        /// </code>
        /// <para lang="C#">
        /// 输出结果:
        /// <br/>http://www.thinksea.com/default.aspx
        /// </para>
        /// </example>
        public static string ClearUriParameter(string uri, bool retainSharp)
        {
            var r = UriExtTool.Create(uri);

            r.ClearUriParameter(retainSharp);
            return(r.ToString());
        }
Beispiel #3
0
        /// <summary>
        /// 从指定的 URI 删除参数。
        /// </summary>
        /// <param name="uri">一个可能包含参数的 uri 字符串。</param>
        /// <param name="name">参数名。</param>
        /// <returns>已经移除了指定参数的 uri 字符串。</returns>
        /// <example>
        /// <para lang="C#">
        /// <![CDATA[
        /// 下面的代码演示了如何使用这个方法清除 URL“http://www.thinksea.com/default.aspx?id=1&name=thinksea”的参数“id=1”:
        /// ]]>
        /// </para>
        /// <code lang="C#">
        /// <![CDATA[this.Response.Write(Thinksea.Web.RemoveUriParameter("http://www.thinksea.com/default.aspx?id=1&name=thinksea", "id"));
        /// ]]>
        /// </code>
        /// <para lang="C#">
        /// 输出结果:
        /// <br/>http://www.thinksea.com/default.aspx?name=thinksea
        /// </para>
        /// </example>
        public static string RemoveUriParameter(string uri, string name)
        {
            var r = UriExtTool.Create(uri);

            r.RemoveUriParameter(name);
            return(r.ToString());
        }
Beispiel #4
0
        /// <summary>
        /// 为指定的 URI 设置参数。
        /// </summary>
        /// <param name="uri">一个可能包含参数的 uri 字符串。</param>
        /// <param name="name">参数名。</param>
        /// <param name="value">新的参数值。</param>
        /// <returns>已经设置了指定参数名和参数值的 uri 字符串。</returns>
        /// <remarks>
        /// 如果指定的参数存在,则更改参数值为指定的新的参数值,否则,添加一个具有指定参数名和新的参数值的参数。
        /// </remarks>
        /// <example>
        /// <para lang="C#">
        /// <![CDATA[
        /// 下面的代码演示了如何使用这个方法将 URL“http://www.thinksea.com/default.aspx?id=1&name=thinksea”的参数“id=1”更改为“id=2”:
        /// ]]>
        /// </para>
        /// <code lang="C#">
        /// <![CDATA[this.Response.Write(Thinksea.Web.SetUriParameter("http://www.thinksea.com/default.aspx?id=1&name=thinksea", "id", "2"));
        /// ]]>
        /// </code>
        /// <para lang="C#">
        /// 输出结果:
        /// <br/><![CDATA[http://www.thinksea.com/default.aspx?id=2&name=thinksea]]>
        /// </para>
        /// </example>
        public static string SetUriParameter(string uri, string name, string value)
        {
            var r = UriExtTool.Create(uri);

            r.SetUriParameter(name, value);
            return(r.ToString());
        }
Beispiel #5
0
        /// <summary>
        /// 从指定的 URI 中获取指定的参数的值。
        /// </summary>
        /// <param name="uri">一个可能包含参数的 uri 字符串。</param>
        /// <param name="name">参数名。</param>
        /// <returns>指定参数的值,如果找不到这个参数则返回 null。</returns>
        /// <example>
        /// <para lang="C#">
        /// <![CDATA[
        /// 下面的代码演示了如何使用这个方法从 URL“http://www.thinksea.com/default.aspx?id=1&name=thinksea#mark1”中获取参数“id”的值“1”:
        /// ]]>
        /// </para>
        /// <code lang="C#">
        /// <![CDATA[this.Response.Write("Par:" + Thinksea.Web.GetUriParameter("http://www.thinksea.com/default.aspx?id=1&name=thinksea#mark1", "id"));
        /// ]]>
        /// </code>
        /// <para lang="C#">
        /// 输出结果:
        /// <br/>Par:1
        /// </para>
        /// </example>
        public static string GetUriParameter(string uri, string name)
        {
            var r = UriExtTool.Create(uri);

            return(r.GetUriParameter(name));
        }
Beispiel #6
0
            /// <summary>
            /// 用指定的 URI 创建此实例。
            /// </summary>
            /// <param name="uri">一个可能包含参数的 uri 字符串。</param>
            /// <returns>URI 解析实例。</returns>
            public static UriExtTool Create(string uri)
            {
                UriExtTool result = new UriExtTool();

                int queryIndex = uri.IndexOf('?');
                int sharpIndex;

                if (queryIndex > -1)
                {
                    sharpIndex = uri.IndexOf('#', queryIndex + 1);
                }
                else
                {
                    sharpIndex = uri.IndexOf('#');
                }

                if (queryIndex > -1)
                {
                    result.path = uri.Substring(0, queryIndex);
                }
                else if (sharpIndex > -1)
                {
                    result.path = uri.Substring(0, sharpIndex);
                }
                else
                {
                    result.path = uri;
                }

                if (sharpIndex > -1)
                {
                    result.mark = uri.Substring(sharpIndex);
                }

                if (queryIndex > -1)
                {
                    string queryString;
                    if (sharpIndex > -1)
                    {
                        queryString = uri.Substring(queryIndex + 1, sharpIndex - queryIndex - 1);
                    }
                    else
                    {
                        queryString = uri.Substring(queryIndex + 1);
                    }
                    if (queryString.Length > 0)
                    {
                        result.query = new System.Collections.Generic.List <QueryItem>();
                        string[] queryList = queryString.Split('&', '?');
                        foreach (string item in queryList)
                        {
                            int enqIndex = item.IndexOf('=');
                            if (enqIndex > -1)
                            {
                                result.query.Add(new QueryItem(item.Substring(0, enqIndex), item.Substring(enqIndex + 1)));
                            }
                            else
                            {
                                result.query.Add(new QueryItem(item, null));
                            }
                        }
                    }
                }

                return(result);
            }