How do you access HttpContext in the constructor of a Controller in .NET Core 3.1?
It always seems to be null in the constructor, but is available in the actual methods. This was possible in MVC 4 and this has come up while trying to port the project to .NET Core.
If I try and use the HttpContextAccessor through DI, this fails with an exception:
InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Http.HttpContextAccessor' while attempting to activate 'MyProject.Controllers.UsersController'
You can use the IHttpContextAccessor for access to HttpContext.
for access HttpContext you must add services.AddHttpContextAccessor() to ConfigureService method
services.AddHttpContextAccessor();
and get IHttpContextAccessor from Dependency Injection in constructor
private readonly IHttpContextAccessor _httpContextAccessor;
public UsersController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
access to HttpContext
_httpContextAccessor.HttpContext
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With