多个页面有如下多个session,本来可能是如下面这样的

Session["UId"] = 10;
Session["UName"] = "test";
Session["PicId"] = 10;
Session["IsTed"] = false;

 这样比较不方便管理。看起来也乱,可以先建一个Model,把要用到的属性都放进去,再保存到model里。要用的时候直接从model里点一下就取出来了。如下面

//建一个用于存session的model,这个一般放在model层中
public class UserInfoModel
{
    public int UId{get;set;}
    public string UName{get;set;}
    public string PicId{get;set;}
    public bool IsTed{get;set;}
}
     
//我一般会建一个PageBase.cs作为基类,把以下放进去,所有页面都继承这个类,然后在这里作身份验证,
//保存初始化时把用户登录的一些基本信息等等。
     
//从数据中读取以下数据保存到session中
if(Session["UserInfoModel"] == null)
{
    UserInfoModel userInfoModel = new UserInfoModel();
    userInfoModel.UId = 10;
    userInfoModel.UName = "test";
    userInfoModel.PicId  = 10;// Get..
    userInfoModel.IsTed = false;
    Session["userInfoModel"] = userInfoModel;
}
     
//使用,先把Session转回去。这边用as转换避免出错。
UserInfoModel userInfoModel = Session["userInfoModel"] as UserInfoModel;
     
if(userInfoModel != null)
{
    //比如给页面上的一个label赋值
    this.lblUserName.Text = userInfoModel.UserName;
    //...
}

 

posted on 2015-07-17 15:28  松竹梅  阅读(632)  评论(0编辑  收藏  举报