ASP.NET MVC 学习笔记之TempData、HttpContext和HttpContextBase杂谈

TempData本质上是Session 但是有一点不同的是,TempData被赋值之后,一旦被Action访问一次之后,马上就会清空。 

  

System.Web.HttpContext System.Web.HttpContextBase 

HttpContext HttpContextBase HttpRequestHttpRequestBaseHttpPostFileHttpPostFileBase的区别。 

他们都是在System.Web命名空间下的两个类 

  1. Controller中的HttpContext是一个HttpContextBase类型的属性(真正的HttpContextWrapper类型,是对System.Web.HttpContext的一个封装),System.Web.HttpContext是一个类型,这两个类之间没有继承关系 

  2. HttpContextBase能进行单元测试,而System.Web.HttpContext不能。 

  3. 推荐在MVC中使用Controller中的HttpContextBase类型的HttpContext属性,而不是使用原始ASP.Net核心类中的HttpContext 

  4. 怎样获取当前的HttpContext呢,在原生ASP.NET中,使用HttpContext.Current进行获取,而在MVC中, 则不推荐用Current,而是随用随传 

public void Add(HttpContextBase ctx, string name){ 

Ctx.Server.MapPath(name); 

} 
原文地址:https://www.cnblogs.com/c-supreme/p/9517599.html