C#更改跳转的URL地址

来源:互联网 发布:chakra linux 怎么样 编辑:程序博客网 时间:2024/05/19 22:52
      /// <summary>
        /// midString必须包含在oldUrl中
        /// </summary>
        /// <param name="oldUrl"></param>
        /// <param name="midString"></param>
        /// <returns></returns>
        private string replaceMidUrl(string oldUrl, string midString, string paraValue)
        {
            string uFront = oldUrl.Substring(0, oldUrl.IndexOf(midString));
            string uEnd0 = oldUrl.Substring(oldUrl.IndexOf(midString) + midString.Length);
            string uEnd;
            if (uEnd0.Contains("&"))
            {
                uEnd = uEnd0.Substring(uEnd0.IndexOf("&") + 1);
            }
            else
                uEnd = string.Empty;
            if (!string.IsNullOrEmpty(paraValue))
                return uFront + midString + paraValue + (uEnd == string.Empty ? string.Empty : "&" + uEnd);
            else
                return uFront + (uEnd == string.Empty ? string.Empty : (midString.StartsWith("?") ? "?" : "&") + uEnd);
        }


      
        public string GetUrlByParam(string oldUrl, string paraName, string paraValue)
        {
            paraValue = HttpContext.Current.Server.UrlEncode(paraValue);
            string wenSting = "?" + paraName + "=";
            if (oldUrl.Contains(wenSting))
            {
                return replaceMidUrl(oldUrl, wenSting, paraValue);
            }
            string andSting = "&" + paraName + "=";
            if (oldUrl.Contains(andSting))
            {
                return replaceMidUrl(oldUrl, andSting, paraValue);
            }
            if (!string.IsNullOrEmpty(paraValue))
            {
                if (oldUrl.Contains("?"))
                {
                    return oldUrl + "&" + paraName + "=" + paraValue;
                }
                return oldUrl + "?" + paraName + "=" + paraValue;
            }
            return oldUrl;
        }
0 0
原创粉丝点击