在 ASP.NET Core MVC 中获取主机地址

Joh*_*Doe 10 c# asp.net-core

我想在我的控制器上获取我的主机地址,类型为 POST。请检查下面的控制器示例。请注意我使用的是asp.net core 2.1

[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult PasswordReset(ResetPassword data)
{
    string myurl = //how can i store http host address on this variable?
    return View()
}
Run Code Online (Sandbox Code Playgroud)

Tan*_*jel 21

尝试这个:

在控制器中:

string myHostUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
Run Code Online (Sandbox Code Playgroud)

控制器外:

public class YourClass 
{
   private readonly IHttpContextAccessor _httpContextAccessor;
   public YourClass(IHttpContextAccessor httpContextAccessor)
   {
      _httpContextAccessor = httpContextAccessor;
   }

   public void YourMethod()
   {
      string myHostUrl = $"{_httpContextAccessor.HttpContext.Request.Scheme}://{_httpContextAccessor.HttpContext.Request.Host}";
   }
}
Run Code Online (Sandbox Code Playgroud)

然后IHttpContextAccessor在Startup类中注册如下:

public void ConfigureServices(IServiceCollection services)
{
    services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

    // Or you can also register as follows

    services.AddHttpContextAccessor();
}
Run Code Online (Sandbox Code Playgroud)


Saj*_*ran 8

您可以通过访问请求获得

string myurl = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
Run Code Online (Sandbox Code Playgroud)