ASP.NET Web Forms - Mantener ViewState
Al mantener el ViewState (estado de vista) de los objetos en su Web Form, puede ahorrar una gran cantidad de trabajo de codificación.
Mantener ViewState (estado de vista)
En ASP clásico, cuando se envía un formulario, todos los valores del formulario se borran. Supongamos que envió un formulario con mucha información y el servidor devolvió un error. Tiene que volver al formulario para corregir la información. Hace clic en el botón Atrás y, entonces, ¿qué sucede? ... ¡Todos los valores del formulario se borran y tiene que empezar de nuevo desde cero! El sitio no mantenía su ViewState.
En ASP .NET, cuando se envía un formulario, el formulario aparece en la ventana del navegador junto con los valores del formulario. ¿Cómo se logra? Esto se debe a que ASP .NET mantiene su ViewState. El ViewState indica su estado cuando la página se envía al servidor. Este estado se define colocando un campo oculto en cada página con el control <form runat="server">. El código fuente se muestra a continuación:
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....some code
</form>
Mantener el ViewState es la configuración predeterminada de ASP.NET Web Forms. Si no desea mantener el ViewState, incluya la directiva <%@ Page EnableViewState="false" %> en la parte superior de la página .aspx, o agregue el atributo EnableViewState="false" a cualquier control.
Vea el siguiente archivo .aspx. Demuestra el comportamiento "antiguo". Cuando hace clic en el botón Enviar, los valores del formulario desaparecerán:
Ejemplo
<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>
Ver ejemplo »
A continuación se muestra el nuevo método ASP .NET. Cuando hace clic en el botón Enviar, los valores del formulario no desaparecerán:
Ejemplo
Haga clic en 'Ver código fuente' en el marco derecho del ejemplo, y verá que ASP .NET ha agregado un campo oculto al formulario para mantener el ViewState.
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>
Ver ejemplo »