我想在类型为POST的 Controller 上获取主机地址。请检查以下 Controller 示例。请注意,我正在使用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()
}

最佳答案

试试这个:

在 Controller 中:

string myHostUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";

Controller 外部:
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}";
   }
}

然后在Startup类中注册IHttpContextAccessor,如下所示:
public void ConfigureServices(IServiceCollection services)
{
    services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

    // Or you can also register as follows

    services.AddHttpContextAccessor();
}

关于c# - 在ASP.NET Core MVC中获取主机地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53577352/

10-11 03:08
查看更多