在asp.net中,为什么页面构造函数被调用两次

时间:2014-03-12 16:06:40

标签: asp.net

我在网页上写了一个构造函数

public partial class TestPage : System.Web.UI.Pag
    {
        public TestPage()
        {
          //  Session["x"] = 10;
        }
  }

当我在调试模式下从vs2012运行应用程序时,Constructor将执行两次。任何人都可以告诉我为什么会这样做吗?

编辑:这个得分-2是由任何人设定的?或者它是默认的吗?如果由某人设定,想知道为什么?感谢。

2 个答案:

答案 0 :(得分:0)

不完全确定在标准页面执行/单次加载中会导致构造函数被调用两次的原因。可能与page life cycle有关,以及ASP.Net在执行过程中创建Page变量并使用它(或它的倍数)的方式。

我相信您可能打算使用Page_Load事件(如页面生命周期中所述),该事件每页加载只应执行一次。

protected void Page_Load(object sender, EventArgs e)
{
    Session["x"] = 10;
}

答案 1 :(得分:0)

你不应该在构造函数中使用Session做任何事情。为什么你甚至需要在网页上使用构造函数。使用OnInit()进行初始化。

protected override void OnInit(EventArgs e)