ASP.Net - Page_Load и Page_Init вызываются при каждом нажатии кнопки? - PullRequest
5 голосов
/ 20 сентября 2011

Так что у меня нет абсолютно никакой логики в моем коде. У меня есть два метода Page_Init & Page_Load

Оба метода вызываются каждый раз, когда я нажимаю кнопку. Имеет смысл для вызова Page_load. Но почему Page_Init вызывается каждый раз?

protected void Page_Init(Object sender, EventArgs e)
{

}

protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click1(object sender, EventArgs e)
{
    // Do something here
}

1 Ответ

9 голосов
/ 20 сентября 2011

Полагаю, вы не знаете о жизненном цикле страниц.

Page_Init всегда вызывается при создании страницы и вызывается до загрузки страницы.

Pre Init вызывается, затем Init вызывается, а затем Pre Load, затем Load, затем Pre Render и затем Render почти каждый раз, когда происходит обратная передача.

Вы можете сделать этот трюк, если вы не на реальном сервере. Добавить

Trace ="true"

в директиве Page, которая покажет вам полный цикл страницы.

Как это,

   <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" 
    Inherits="_Default" Trace="true"%>
...