| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- using System.Collections.Specialized;
- using System.Web;
- namespace CommonTool
- {
- /// <summary>
- /// URl帮助类
- /// </summary>
- public class UriUtil
- {
- /// <summary>
- /// 在URL后面追加参数
- /// </summary>
- /// <param name="url"></param>
- /// <param name="key"></param>
- /// <param name="value"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 根据URL的相对地址获取决定路径
- /// <para>eg: /Home/About ==>http://192.168.0.1/Home/About</para>
- /// </summary>
- /// <returns>System.String.</returns>
- 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;
- }
- }
- }
|