.NET Core技术研究-HttpContext访问的正确姿势

  将ASP.NET升级到ASP.NET Core之后,相信大家都会遇到HttpContext.Current无法使用的问题。这也是我们迁移ASP.NET Core必须解决的问题。

  本文我们详细讨论一下,使用HttpContext的正确姿势。

  先列一下使用HttpContext的具体场景:

1. 在Controller层访问HttpContext

2. 在中间件中使用HttpContext

3. 在数据访问层使用HttpContext

4. 在后台线程中访问HttpContext

5. 在Razor页面模型中访问HttpContext

6. 在Razor视图中访问HttpContext

  可能还有其他的应用场景。接下来我们按场景一一示例解决。

  首先本文用的是ASP.NET Core 3.1

  一、新建一个ASP.NET Core Web应用程序

  

.NET Core技术研究-HttpContext访问的正确姿势

  

.NET Core技术研究-HttpContext访问的正确姿势

  

.NET Core技术研究-HttpContext访问的正确姿势

  

.NET Core技术研究-HttpContext访问的正确姿势

二、在Controller层访问HttpContext

   示例代码中HomeController继承与Controller抽象类

   Controller父类中继承与ControllerBase抽象类

   其中ControllerBase抽象类有提供了对HttpContext的访问

  

.NET Core技术研究-HttpContext访问的正确姿势

  所以,我们在Controller这一层可以按以下方式访问HttpContext:

1 public class HomeController : Controller 2 { 3 private readonly ILogger<HomeController> _logger; 4 private string customer; 5 6 public HomeController(ILogger<HomeController> logger) 7 { 8 _logger = logger; 9 10 customer = HttpContext.Request.Form["CustomerId"]; 11 } 12 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfwjp.html