/// <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;
}
/// 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;
}