我在应用程序的App_Code文件夹中创建了一个类文件。我有一个会话变量
Session["loginId"]
我想在我的班级中访问此会话变量,但是当我编写以下行时,它给出了错误
谁能告诉我如何访问在ASP.NET 2.0(C#)的app_code文件夹中创建的类中的会话变量
(为了完整性起见,已更新) 您可以使用Session["loginId"]任何类从任何页面或控件访问会话变量(例如,从类库内部),使用System.Web.HttpContext.Current.Session["loginId"].
System.Web.HttpContext.Current.Session["loginId"].
但是请继续阅读我的原始答案…
我总是在ASP.NET会话周围使用包装器类,以简化对会话变量的访问:
public class MySession { // private constructor private MySession() { Property1 = "default value"; } // Gets the current session. public static MySession Current { get { MySession session = (MySession)HttpContext.Current.Session["__MySession__"]; if (session == null) { session = new MySession(); HttpContext.Current.Session["__MySession__"] = session; } return session; } } // **** add your session properties here, e.g like this: public string Property1 { get; set; } public DateTime MyDate { get; set; } public int LoginId { get; set; } }
此类在ASP.NET会话中存储其自身的一个实例,并允许您从任何类中以类型安全的方式访问会话属性,例如:
int loginId = MySession.Current.LoginId; string property1 = MySession.Current.Property1; MySession.Current.Property1 = newValue; DateTime myDate = MySession.Current.MyDate; MySession.Current.MyDate = DateTime.Now;
这种方法有几个优点: