Последние учебники веб-разработки
×

ASP.NET Руководство

ASP.NET ГЛАВНАЯ ASP.NET вступление

WP Руководство

WebPages вступление WebPages бритва WebPages раскладка WebPages Папки WebPages Глобальный WebPages формы WebPages Объекты WebPages файлы WebPages Базы данных WebPages Помощники WebPages WebGrid WebPages Графики WebPages Эл. адрес WebPages PHP WebPages Публиковать WebPages Примеры

WP Рекомендации

WebPages Классы WebPages Безопасность WebPages База данных WebPages WebMail WebPages Помощники

ASP.NET Razor

Razor вступление Razor Синтаксис Razor C# переменные Razor C# Loops Razor C# логика Razor VB переменные Razor VB Loops Razor VB логика

ASP.NET MVC

MVC вступление MVC заявка MVC Папки MVC раскладка MVC Контроллеры MVC Просмотры MVC База данных MVC модель MVC Безопасность MVC HTML Помощники MVC Публиковать MVC Справка

WF Учебники

WebForms вступление WebForms страницы WebForms управления WebForms Мероприятия WebForms формы WebForms ViewState WebForms Текстовое окно WebForms кнопка WebForms Связывание данных WebForms ArrayList WebForms Хеш-таблица WebForms SortedList WebForms XML файлы WebForms повторитель WebForms DataList WebForms DbConnection WebForms Master страницы WebForms навигация WebForms Примеры


 

ASP.NET Web Forms - Сохранение ViewState


Вы можете сэкономить много кодирования, поддерживая 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>
Показать пример »