我在网页上写了一个构造函数
public partial class TestPage : System.Web.UI.Pag
{
public TestPage()
{
// Session["x"] = 10;
}
}
当我在调试模式下从vs2012运行应用程序时,Constructor将执行两次。任何人都可以告诉我为什么会这样做吗?
编辑:这个得分-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)