在 ASP.Net Core 中获取基本 URL

Mem*_*don 4 c# asp.net asp.net-core

我最近刚刚从 ASP.NET MVC 切换到使用 .Core 2,但我不知道如何在 Core 中获取当前 URL。我可以使用以前的 asp.net 版本中的 Request 轻松获得它,但由于这在 .Net Core 中不再有效,我不知所措。

到目前为止,我无法从我的谷歌搜索中找到任何方法。

任何帮助表示赞赏。谢谢!

小智 8

在文件的ConfigureServices方法中Startup.cs,添加以下行:

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

并且IHttpContextAccessor在使用依赖注入时,您现在可以在整个代码中访问该接口。

用法如下:

public class CustomerRepository
{
    private readonly IHttpContextAccessor _context;

    public CustomerRepository(IHttpContextAccessor context)
    {
        _context = context;
    }

    public string BaseUrl()
    {
        var request = _context.HttpContext.Request;
        // Now that you have the request you can select what you need from it.
        return string.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这能回答你的问题:)


小智 6

尝试:

public class Startup {
    public Startup(IConfiguration configuration, IHostingEnvironment env) {
        Configuration = configuration;
        HostingEnvironment = env;
        var url = configuration[WebHostDefaults.ServerUrlsKey];
   }
Run Code Online (Sandbox Code Playgroud)

请注意,您可以获得多个网址。