比如多个页面有如下多个session,本来可能是如下面这样的:
Session["UserId"] = 1; Session["UserName"] = "nic"; Session["GroupId"] = 1; Session["IsBlocked"] = false;
这样比较不方便管理。看着也乱,可以这样,先建一个Model,把要用到的属性都放进去,再保存到model里。要用的时候直接从model里点一下就取出来了。如下:
//建一个用于存session的model,这个一般放在model层中 public class UserInfoModel { public int UserId{get;set;} public string UserName{get;set;} public string GroupId{get;set;} public bool IsBlocked{get;set;} } //我一般会建一个PageBase.cs作为基类,把以下放进去,所有页面都继承这个类,然后在这里作身份验证, //保存初始化时把用户登录的一些基本信息等等。 //从数据中读取以下数据保存到session中 if(Session["UserInfoModel"] == null) { UserInfoModel userInfoModel = new UserInfoModel(); userInfoModel.UserId = 1; userInfoModel.UserName = "nic"; userInfoModel.GroupId = 1;// Get.. userInfoModel.IsBlocked = false; Session["userInfoModel"] = userInfoModel; } //使用,先把Session转回去。这边用as转换避免出错。 UserInfoModel userInfoModel = Session["userInfoModel"] as UserInfoModel; if(userInfoModel != null) { //比如给页面上的一个label赋值 this.lblUserName.Text = userInfoModel.UserName; //... }
PHP可以用数组来代替。