asp.net core獲取當前請求的完整url
首先需要在控制器項目中使用NuGet引入 Microsoft.AspNetCore.Http.Abstractions包。
然后有兩種獲取當前URL的方式。
方法1,在控制器里面,string displayUrl = HttpContext.Request.GetDisplayUrl();
方法2,定義一個HttpRequest的擴展類。
using Microsoft.AspNetCore.Http.Extensions; namespace demo1.tools { public static class HttpRequestExtensions { public static string GetAbsoluteUri(this HttpRequest request) { return new StringBuilder() .Append(request.Scheme) .Append("://") .Append(request.Host) .Append(request.PathBase) .Append(request.Path) .Append(request.QueryString) .ToString(); } } }
調用方式:
方法1,直接調用 Request.GetDisplayUrl()方法。
string displayUrl = HttpContext.Request.GetDisplayUrl();
方法2 調用擴展方法
string requestUrl = HttpRequestExtensions.GetAbsoluteUri(HttpContext.Request);
using demo1.tools; using Microsoft.AspNetCore.Http.Extensions; namespace demo1.xTwoMvc.Controllers { public class HomeController : Controller { public IActionResult Index() { //方法1 直接調用Request.GetDisplayUrl()方法 string displayUrl = HttpContext.Request.GetDisplayUrl(); //方法2 調用擴展方法 string requestUrl = HttpRequestExtensions.GetAbsoluteUri(HttpContext.Request); base.ViewData["displayUrl"] = displayUrl; base.ViewData["requestUrl"] = requestUrl; return View(); } } }