如何为 ASP.NET Core View class 替换 "Request" class 方法?

How can I replace a "Request" class method for ASP.NET Core View class?

我正在尝试将少数视图 classes 从 .NET 迁移到 .NET Core,但我遇到了缺少 "Request" class 方法的问题。

我的具体代码如下:

<form id="contactUs" method="post" action="@Request.Url.GetLeftPart(UriPartial.Authority)@Url.Action("ContactUsFormSubmit")" accept-charset="utf-8">

如何替换 .NET Core 语法的 Request.Url.GetLeftPart(UriPartial.Authority) 部分?

在.NET Core中调用权限部分有没有更好的方法?

Request 现在可以在控制器中找到 Request(来自基础 class),如果您在 MVC 视图中,则可以在 @Context.Request 处找到。

但是 Request.Url 没有 的替代品,所以你需要自己制作:(见编辑)

string.Concat(Request.Scheme, 
    "://", 
    Request.Host.ToUriComponent(), 
    Request.PathBase.ToUriComponent(), 
    Request.Path.ToUriComponent(),
    Request.QueryString.ToUriComponent())

但你的情况似乎没有必要。您可以让浏览器处理相对路径...

<form id="contactUs" method="post" action="@Url.Action("ContactUsFormSubmit")" accept-charset="utf-8">

或使用 MVC Core 原生方式(使用标签助手):

<form asp-controller="MyController" asp-action="ContactUsFormSubmit" method="post">

编辑: 实际上有 Request.Url 的替代品:

添加:using Microsoft.AspNetCore.Http.Extensions; 然后调用 Request.GetDisplayUrl();... 那将 return https://localhost/MyController/MyAction?Param1=blah.