У меня есть эта программа в asp.netГде хранится свойство IsPostBack? в asp.net
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat ="server" ID="btnTest" Text ="Request Somethig"
OnClick ="OnClick" />
</div>
</form>
</body>
И код позади:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
Response.Write("A Post Back has been sent from server");
}
protected void OnClick(object sender, EventArgs e)
{
//The button has AutoPostBack by default
}
}
Если я запросить страницу на сервер http://localhost:50078/Default.aspx , сервер будет создавать экземпляр класс _Default.cs, то он срабатывает и Page_Load события, и эта строка не будут выполнены в первый раз:
Response.Write("A Post Back has been sent from server");
И причина в том, что IsPostBack = ложь
Тогда, если я ударил нажать на кнопку, я запросить пост обратно с сервера, так что теперь IsPostBack будет верно и в моем браузере я буду видеть сообщение
"A Post Back has been sent from server"
Мой вопрос: как свойство IsPostBack изменено с false на true и где хранится это значение?
Насколько я знаю, экземпляр, созданный сервером из класса _Default.cs, уничтожается после отправки HTML-кода клиенту, поэтому он не должен иметь ничего о свойствах IsPostBack, когда я нажимаю кнопку (делая пост назад).
Хранит ли сервер значение IsPostback в скрытой переменной _VIEWSTATE на самой странице?
Спасибо заранее!
Вы можете посмотреть по адресу: [Как IsPostBack технически работать] (http://stackoverflow.com/questions/5650580/how-does-ispostback-technically-work/5650663#5650663). – ConnorsFan