session是针对某一访问者,可以在多个页面里使用的
cache则是每个应用程序域都会创建一个实例的,并且只要对应的应用程序域保持活动,该实例便保持有效,所以它是该应用程序的所有访问者公用的
Context.Items是用于在 HTTP 请求过程中在 IHttpModule 和 IHttpHandler 之间组织和共享数据的集合,因此只能在某一页面里使用且只针对某一访问者(每个访问者都有自己的数据)
ASP.NET提供一个类System.Web.HttpContext ,用来表示上下文,此对象有一个属性Items
暂存状态就是利用HttpContext.Items属性来存放数据
MSDN中HttpContext.Items属性的解释是这样的:获取可用于在 HTTP 请求过程中在 IHttpModule 和 IHttpHandler 之间组织和共享数据的键值
HttpContext.Items属性中可以存放任何类型数据,无论这个属性中存放什么数据,都会在请求处理结束后自动清除,这就是暂存状态,数据的存放时间非常短.
Context使用例子:
页面1
Context.Items["txtSurName"] = txtSurName.Text;
Context.Items["txtName"] = txtName.Text;
Context.Items["txtDesignation"] = txtDesignation.Text;
Context.Items["txtOrganization"] = txtOrganization.Text;
Context.Items["txtNric"] = txtNric.Text;
... ...
页面2
string strClientSurName = Convert.ToString(Context.Items["txtSurName"]);
string strClientGivenName = Convert.ToString(Context.Items["txtName"]);
string strClientDesignation = Convert.ToString(Context.Items["txtDesignation"]);
string strClientOrganization = Convert.ToString(Context.Items["txtOrganization"]);
string strClientNRIC = Convert.ToString(Context.Items["txtNric"]);
... ...