ASP.NET - Поддержка ViewState
- Предыдущая страница Формы WebForms
- Следующая страница TextBox WebForms
Поддерживая ViewState (ViewState) объектов в веб-форме, вы можете сэкономить много времени на кодировании.
Поддержка ViewState (ViewState)
Когда форма в classic ASP подается, все значения формы будут стерты. Представьте себе, что вы подаете форму с大量 информации, а сервер возвращает ошибку. Вам нужно вернуться к форме и исправить информацию. Вы нажимаете кнопку "Назад", и что happens... все значения формы стираются, и вам нужно начать все сначала. Сайт не поддерживает ваш ViewState.
Когда форма в ASP .NET подается, форма появляется вместе со всеми значениями формы. Как это происходит? Это происходит из-за того, что ASP .NET поддерживает ваш ViewState. ViewState указывает на состояние страницы, когда она подается на сервер. Положив скрытый элемент в каждый <form runat="server"> контрол на странице, мы можем определить состояние страницы. Исходный код может выглядеть так:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....код </form>
Поддержка ViewState является default setting для ASP.NET Web формы. Если вы не хотите поддерживать ViewState, включите инструкцию в верхней части страницы .aspx: <%@ Page EnableViewState="false" %> или добавьте свойство: EnableViewState="false" для любого контрола.
Пожалуйста, посмотрите на следующий файл .aspx. Он демонстрирует старый способ работы. Когда вы нажимаете кнопку "Подтвердить", значения формы исчезают:
<html> <body> <form action="demo_classicasp.aspx" method="post"> Ваше имя: <input type="text" name="fname" size="20"> <input type="submit" value="Submit"> </form> <% dim fname fname=Request.Form("fname") If fname<>"" Then Response.Write("Hello " & fname & "!") End If %> </body> </html>
Это новый способ ASP .NET. При нажатии на кнопку отправки значения формы не исчезают:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> Ваше имя: <asp:TextBox id="txt1" runat="server" /> <asp:Button OnClick="submit" Text="Submit" runat="server" /> <p><asp:Label id="lbl1" runat="server" /></p> </form> </body> </html>
Показать этот пример (Нажмите «Просмотреть исходный документ» в правой рамке, чтобы увидеть, как ASP .NET добавил скрытое поле в форму, чтобы поддерживать ViewState.)
- Предыдущая страница Формы WebForms
- Следующая страница TextBox WebForms