将数据加载到会话中:它会在那里吗?

时间:2011-02-01 23:54:28

标签: asp.net

我有一个包含以下代码的母版页:

protected void Page_Init(object sender, EventArgs e)
{
  if (Session["SessionUserPreferences"] == null)
     { 
        MyHelper.LoadInitialUserData(6); 
     }
}

在我的代码中,我使用SessionUserPreferences中加载的一些数据来显示Page_Load事件中的页面。母版页的Page_Init事件出现在aspx页面的Page_load事件之前,因此理论上当我到达后面的代码时数据应该在会话中。但情况总是如此吗?从DB加载数据所需的时间是否大于Page_load事件触发的时间?我正在使用InProc Session。

感谢。

2 个答案:

答案 0 :(得分:3)

Page_Load在Page_Init完成之前不会执行。你应该仍然检查它是否在Page_Load中为空。

答案 1 :(得分:2)

仅供参考,事件顺序MSDN x

所以回答你的问题: 如果主页的init事件被触发,则其他主事件和子事件将按顺序触发,如上面文章链接中所述......