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