Nic*_*ckG 3 c# .net-core asp.net-core asp.net-core-3.1
如何在 .NET Core 3.1 中的 Controller 构造函数中访问 HttpContext?
它在构造函数中似乎总是为 null,但在实际方法中可用。这在 MVC 4 中是可能的,并且在尝试将项目移植到 .NET Core 时出现了。
如果我尝试通过 DI 使用 HttpContextAccessor,则会失败并出现异常:
InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Http.HttpContextAccessor' while attempting to activate 'MyProject.Controllers.UsersController'
您可以使用IHttpContextAccessor来访问HttpContext.
要访问,HttpContext您必须添加services.AddHttpContextAccessor()到ConfigureService方法
services.AddHttpContextAccessor();
Run Code Online (Sandbox Code Playgroud)
并IHttpContextAccessor从构造函数中的依赖注入获取
private readonly IHttpContextAccessor _httpContextAccessor;
public UsersController(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
Run Code Online (Sandbox Code Playgroud)
进入HttpContext
_httpContextAccessor.HttpContext
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3943 次 |
| 最近记录: |