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

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM