使用sessions变量

时间:2011-01-30 01:44:19

标签: c# asp.net

在我的母版页中,我在会话中加载一个变量,如下所示:

public partial class TheMasterPage : System.Web.UI.MasterPage
{

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            ViewUserPreferences SessionUserPreferences = new ViewUserPreferences();
            SessionUserPreferences = UserPreferences.GetUserPreferencesFromDB(6);
        }

    }

}

然后,在文件后面的代码中,我有这个:

protected void Page_Load(object sender, EventArgs e)
{

        if (!Page.IsPostBack)
        {
               var test = Session["SessionUserPreferences"];
         }
}

但是当我调试时,test为null。是什么导致了这个问题?

另外,如果我在母版页中放置一个断点,那么当我运行aspx页面时它不会触发;这是正常的吗?

感谢。

2 个答案:

答案 0 :(得分:2)

首先,您缺少UserPreferences.GetUserPreferencesFromDB(6)到Session对象的赋值部分。 (我读了@Greg的答案的评论,你提到即使在那之后它也没有用。)

其次,主页面的Page_Load事件在当前页面的Page_Load事件之后被触发,因此Session [“SessionUserPreferences”]的值在当前页面的页面加载事件中为空,因为它尚未设置。

检查此链接以获取有关页面事件的更多信息:

  

http://msdn.microsoft.com/en-us/library/dct97kc3.aspx

答案 1 :(得分:0)

在尝试检索之前,您必须在某处执行Session["SessionUserPreferences"] = something;。你把它设置在你没有展示的其他地方吗?