asp.net core获取当前请求的完整url

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();
        }
    }
}
复制代码

 



posted @   民工黑猫  阅读(10522)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示