Как вы получаете доступ к HttpContext в конструкторе контроллера в. NET Core 3? - PullRequest
0 голосов
/ 18 марта 2020

Как получить доступ к HttpContext в конструкторе контроллера в. NET Core 3.1?

В конструкторе он всегда кажется пустым, но доступен в реальных методах. Это было возможно в MVC 4, и это возникло при попытке перенести проект на. NET Core.

Если я попытаюсь использовать HttpContextAccessor через DI, произойдет сбой с исключением:

InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Http.HttpContextAccessor' while attempting to activate 'MyProject.Controllers.UsersController'

1 Ответ

1 голос
/ 18 марта 2020

Вы можете использовать IHttpContextAccessor для доступа к HttpContext.

для доступа HttpContext необходимо добавить services.AddHttpContextAccessor() к ConfigureService методу

services.AddHttpContextAccessor();

и получить IHttpContextAccessor из Dependency Injection в конструкторе

private readonly IHttpContextAccessor _httpContextAccessor;

public UsersController(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}

доступ к HttpContext

_httpContextAccessor.HttpContext
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...