📅  最后修改于: 2023-12-03 14:50:51.394000             🧑  作者: Mango
在 ASP.NET Core 中,获取当前请求的 URL 是非常常见的需求。URL 可能包含路径、查询参数和片段等信息,你可能需要在应用程序中使用这些信息。
下面是在 C# 中获取请求 URL 的几种常见方法:
HttpRequest
你可以通过注入 HttpRequest
对象来获取当前请求的 URL。HttpRequest
对象提供了许多有用的属性,可以方便地访问请求的各个部分。
using Microsoft.AspNetCore.Http;
public class MyController : Controller
{
private readonly HttpRequest _request;
public MyController(IHttpContextAccessor httpContextAccessor)
{
_request = httpContextAccessor.HttpContext.Request;
}
public IActionResult Index()
{
string url = _request.Scheme + "://" + _request.Host + _request.Path + _request.QueryString;
// TODO: 使用 url
// ...
return View();
}
}
UrlHelper
另一种获取请求 URL 的方法是使用 UrlHelper
类。UrlHelper
类是 ASP.NET Core 中的一个实用工具,它提供了许多用于生成 URL 的方法。
using Microsoft.AspNetCore.Mvc;
public class MyController : Controller
{
private readonly IUrlHelper _urlHelper;
public MyController(IUrlHelperFactory urlHelperFactory)
{
_urlHelper = urlHelperFactory.GetUrlHelper(ControllerContext);
}
public IActionResult Index()
{
string url = _urlHelper.Action("ActionName", "ControllerName", new { id = 1 });
// TODO: 使用 url
// ...
return View();
}
}
HttpContext
另一种简单的方法是通过 HttpContext
对象访问请求的 URL。HttpContext
对象是 ASP.NET Core 中的核心概念,它提供了对当前请求的访问权限。
using Microsoft.AspNetCore.Http;
public class MyController : Controller
{
private readonly IHttpContextAccessor _httpContextAccessor;
public MyController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public IActionResult Index()
{
string url = _httpContextAccessor.HttpContext.Request.GetDisplayUrl();
// TODO: 使用 url
// ...
return View();
}
}
这些方法中的每一种都有其自己的优点和用途,选择其中之一取决于你的具体需求和个人偏好。
希望本文对你有所帮助!如果你有任何疑问,请随时提问。