首先需要在控制器项目中使用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();
}
}
}
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有