Ali*_*EXE 13 c# asp.net asp.net-core razor-pages
我想要获取完整的 URL,而不仅仅是Path、 、Query和 not RouteValues。
整个 URL 的原始形式。
如何在 ASP.NET Core Razor Pages 中执行此操作?
hal*_*ldo 17
您可以使用UriHelper扩展方法GetDisplayUrl()或GetEncodedUrl()从请求中获取完整的 URL。
获取显示网址()
以完全未转义的形式返回请求 URL 的组合组件(查询字符串除外),仅适合显示。此格式不应在 HTTP 标头或其他 HTTP 操作中使用。
获取编码网址()
以适合在 HTTP 标头和其他 HTTP 操作中使用的完全转义形式返回请求 URL 的组合组件。
用法:
using Microsoft.AspNetCore.Http.Extensions;
...
string url = HttpContext.Request.GetDisplayUrl();
// or
string url = HttpContext.Request.GetEncodedUrl();
Run Code Online (Sandbox Code Playgroud)
小智 10
你可以用这种方法来做。在.net core
@using Microsoft.AspNetCore.Http
@{
string url = Context.Request.Path;
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用HttpContext.Request.Scheme + HttpContext.Request.Hostget https://localhost:xxxx,然后使用HttpContext.Request.Path + HttpContext.Request.QueryStringget 获取路径并查询:
var request = HttpContext.Request;
var _baseURL = $"{request.Scheme}://{request.Host}";
var fullUrl = _baseURL+HttpContext.Request.Path + HttpContext.Request.QueryString;
Run Code Online (Sandbox Code Playgroud)
您可以使用PageLink方法来IUrlHelper获取页面的绝对 URL。
在页面处理程序(或控制器)中,IUrlHelper可以通过属性访问Url:
public async Task<IActionResult> OnPostAsync()
{
string url = Url.PageLink("/PageName", "PageHandler", routeValues);
...
}
Run Code Online (Sandbox Code Playgroud)
如果您想生成控制器操作的 URL,请使用ActionLink。
适用于 ASP.NET Core 3.0 及更高版本。