在我的母版页中,我在会话中加载一个变量,如下所示:
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页面时它不会触发;这是正常的吗?
感谢。
答案 0 :(得分:2)
首先,您缺少UserPreferences.GetUserPreferencesFromDB(6)到Session对象的赋值部分。 (我读了@Greg的答案的评论,你提到即使在那之后它也没有用。)
其次,主页面的Page_Load事件在当前页面的Page_Load事件之后被触发,因此Session [“SessionUserPreferences”]的值在当前页面的页面加载事件中为空,因为它尚未设置。
检查此链接以获取有关页面事件的更多信息:
答案 1 :(得分:0)
在尝试检索之前,您必须在某处执行Session["SessionUserPreferences"] = something;
。你把它设置在你没有展示的其他地方吗?