Вы можете сэкономить много кодирования, поддерживая ViewState объектов в веб-форме.
Поддержание ViewState
Когда форма представлена в классическом ASP, все значения формы очищается. Предположим, что вы представили форму с большим количеством информации, и сервер возвращается с ошибкой. Вам придется вернуться в форму и исправить информацию. Вы нажимаете кнопку назад, и что происходит ....... ВСЕ значения формы обнуляются, и вам придется начинать все сначала! Сайт не выдерживал свой ViewState.
Когда форма представляется в ASP .NET, форма появляется в окне браузера вместе со всеми значениями формы. Как так? Это происходит потому, что ASP .NET поддерживает свой ViewState. ViewState указывает статус страницы, когда отправляется на сервер. Статус определяется через скрытое поле, размещенное на каждой странице с <формы RUNAT = «сервером»> управления. Источник может выглядеть следующим образом:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....some code
</form>
Сохранение ViewState настройка по умолчанию для веб-форм ASP.NET. Если вы хотите, чтобы НЕ поддерживать ViewState, включает в себя директиву <% @ Page EnableViewState = «ложь»%> в верхней части страницы .aspx или добавить атрибут EnableViewState = «ложный» никакого контроля.
Посмотрите на следующий .aspx файл. Он демонстрирует "old" способ сделать это. При нажатии на кнопку отправки, значение форма исчезает:
пример
<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Your name: <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 путь. При нажатии на кнопку отправки, значение форма не исчезнет:
пример
Нажмите источник просмотра в правом фрейме, например, чтобы увидеть, что ASP .NET добавила скрытое поле в форме, чтобы сохранить ViewState
<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Hello " & txt1.Text & "!"
End Sub
</script>
<html>
<body>
<form runat="server">
Your name: <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>
Показать пример »