获取超链接修改参数返回修改参数后的链接地址

 #region 获取超链接修改参数返回修改参数后的链接地址
    /// <summary>
    /// 获取超链接修改参数返回修改参数后的链接地址
    /// </summary>
    /// <param name="url">链接地址</param>
    /// <param name="changename">要修改的参数名</param>
    /// <param name="changevalue">修改的参数值</param>
    /// <returns>修改后的参数地址</returns>
    private string ReturnPage(Uri url,string changename,string changevalue)
    {
        string strUrlReferrer = url.ToString();
        string strUrl = null, strTemp = null;
        string str = "";
        if (strUrlReferrer.IndexOf("?") == -1)
        {
            strUrl = strUrlReferrer;
        }
        else if (strUrlReferrer.IndexOf("?") > 0)
        {
            strUrl = strUrlReferrer.Substring(0, strUrlReferrer.IndexOf("?"));
            strTemp = strUrlReferrer.Substring(strUrlReferrer.IndexOf("?") + 1, strUrlReferrer.Length - strUrlReferrer.IndexOf("?") - 1);
            if (strTemp.IndexOf("&") == -1)
            {
                string[] strParam = strTemp.Split('=');
                if (strParam[0].ToString().Trim().ToUpper() == changename)
                {
                    str += changename + "=" + changevalue;
                }
                else
                {
                    str += strParam[0] + "=" + strParam[1].ToString()+"&"+changename+"="+Server.UrlEncode(changevalue);
                }
            }
            else
            {
                string[] strParamCount = strTemp.Split('&');
                for (int k = 0; k < strParamCount.Length; k++)
                {
                   if (k > 0 && k < strParamCount.Length)
                    {
                        if (strParamCount[k].ToString().Trim().ToUpper().IndexOf(changename) > -1)
                        {
                            str += "&"+changename+"="+changevalue+"";
                        }
                        else
                        {
                            string[] strParam = strParamCount[k].Split('=');
                            str += "&" + strParam[0] + "=" + Server.UrlEncode(strParam[1]);
                        }
                    }
                    else if (k == 0)
                    {
                        if (strParamCount[k].ToString().Trim().ToUpper().IndexOf(changename) > -1)
                        {
                            str += changename+"="+changevalue;
                        }
                        else
                        {
                            string[] strParam = strParamCount[k].Split('=');
                            str += strParam[0] + "=" + Server.UrlEncode(strParam[1]);
                        }
                    }
                }
            }
        }
        return strUrl + "?" + str;
    }
    #endregion

  

原文地址:https://www.cnblogs.com/coxsoft/p/2228646.html