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