在执行页码之前不执行用户控制代码

时间:2015-03-23 20:36:39

标签: asp.net user-controls master-pages

我有一个母版页,MasterPage1.master它包含用户控件 headerheadercontentfooter。 我已经在headerconten usercontrol中找到了一个代码

if(session["somesession"]==null)
{
Response.Redirect("Somepage.aspx");
}

问题是当我打开包含母版页文件MasterPage1.master而没有登录的页面时,session["somesession"]==null然后它会为会话抛出空引用异常。它&#39 ; s确定因为我的会话没有价值,这就是为什么它会抛出异常。

我的问题是:

  

我希望在之前先执行usercontrol页面代码   页面代码,并重定向到somesession,但它没有发生。   有人可以解释一下,为什么?

1 个答案:

答案 0 :(得分:0)

这是因为Asp.net Lifecyle,总是在页面加载后加载控件,这是有意义的,因为Page init加载进程并递归地通知它的控件,并且大多数情况都会发生asp.net生命周期中的事件。

  • 初始化
  • 加载视图状态
  • 处理回发数据
  • 加载 - 这里asp.net从页面开始创建服务器控制树。
  • 发送回发更改通知
  • 处理回发事件
  • 预渲染
  • 保存状态
  • 渲染
  • 处置
  • 卸载

    您可以在lifecycle for asp.net

  • 中查看此链接以获取更多信息
相关问题