Asp.net会话变量
我有一个带有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; } }