在ASP.NET项目中获取请求完整的Url:
获取System.Web命名空间下的类名为HttpRequestBase的Url方法:
/// <summary>在派生类中替代时,获取有关当前请求的 URL 的信息。</summary> /// <returns>包含有关当前请求的 URL 的信息的对象。</returns> /// <exception cref="T:System.NotImplementedException"> /// 始终。 /// </exception> public virtual Uri Url { get { throw new NotImplementedException(); } }
在控制器中获取:
//获取完整的Url地址 string completeUrl = Request.Url.ToString();
在ASP.NET Core项目中获取:
由于.NET Core相关接口重构,现在无法在项目中直接获取当前请求的完整的Url地址了,需要我们自己把Microsoft.AspNetCore.Http命名空间下类名为HttpRequest的相关方法拼接获取,如下所示。
public IActionResult Privacy() { //获取当前请求完整的Url地址 var GetCompleteUrlStr=GetCompleteUrl(); return View(); } /// <summary> /// 获取当前请求完整的Url地址 /// </summary> /// <returns></returns> private string GetCompleteUrl() { return new StringBuilder() .Append(HttpContext.Request.Scheme) .Append("://") .Append(HttpContext.Request.Host) .Append(HttpContext.Request.PathBase) .Append(HttpContext.Request.Path) .Append(HttpContext.Request.QueryString) .ToString(); }