Asp.net会话变量
本文关键字:变量 会话 net Asp | 更新日期: 2023-09-27 18:27:21
我有一个带有c#代码的asp.net项目。我有一个名为GlobalVariable的静态类,我在其中存储一些信息,例如当前选择的产品。
然而,我看到当有两个用户使用该网站时,如果其中一个用户更改所选产品,如果每个人都更改。静态变量似乎对每个人都是通用的。
我想(从c#代码)创建某种会话变量,该变量仅从c#代码中使用,但不仅从页面中使用,而且从任何类中使用。
是的,静态变量由整个应用程序共享,它们对用户/会话来说绝不是私有的。
要从非页面类访问Session对象,应使用HttpContext.Current.Session
。
GlobalVariable
是一个误导性名称。不管它叫什么,如果它是按会话的,就不应该是static
。你可以这样做:
// store the selected product
this.Session["CurrentProductId"] = productId;
您也不应该试图使Session
集合全局可访问。相反,只传递您需要的数据,并在适当的情况下使用Session
获取/设置。
以下是在MSDN上使用ASP.NET中的会话存储的概述。
您在某种程度上回答了自己的问题。答案在会话变量中。在GlobalVariable类中,可以放置由会话变量支持的属性。
示例:
public string SelectedProductName
{
get { return (string)Session["SelectedProductName"]; }
set { Session["SelectedProductName"] = value; }
}