using System;
using System.Collections.Specialized;
using System.Web;
namespace CommonTool
{
///
/// URl帮助类
///
public class UriUtil
{
///
/// 在URL后面追加参数
///
///
///
///
///
public static string GetAppendedQueryString(string url, string key, string value)
{
return url.Contains("?") ? $"{url}&{key}={value}" : $"{url}?{key}={value}";
}
public static string RemoveParameter(string url, string key)
{
url = url.ToLower();
key = key.ToLower();
if (!url.Contains(key + "=")) return url;
Uri uri = new Uri(url);
NameValueCollection collection = HttpUtility.ParseQueryString(uri.Query);
if (collection.Count == 0) return url;
var val = collection[key];
string fragmentToRemove = $"{key}={val}";
string result = url.ToLower().Replace("&" + fragmentToRemove, string.Empty).Replace("?" + fragmentToRemove, string.Empty);
return result;
}
///
/// 根据URL的相对地址获取决定路径
/// eg: /Home/About ==>http://192.168.0.1/Home/About
///
/// System.String.
public static string GetAbsolutePathForRelativePath(string relativePath)
{
HttpRequest request = HttpContext.Current.Request;
string returnUrl =
$"{request.Url.AbsoluteUri.Replace(request.Url.PathAndQuery, string.Empty)}{VirtualPathUtility.ToAbsolute(relativePath)}";
return returnUrl;
}
}
}