2011-01-28 15 views
5

Cada vez que enviamos un formulario, todos los valores de campo se publican en el servidor y están disponibles dentro del objeto Solicitud. Idealmente, uno puede usar el mismo objeto para leer los valores y realizar cualquiera de las operaciones con él.¿Por qué se requiere ViewState cuando el objeto Request tendría todos los valores de campo?

Entonces, ¿por qué necesitamos ViewState para mantener los valores de los campos?

Disculpe mi ignorancia, creo que me estoy perdiendo alguna vez bastante obvio aquí, pero no puedo entender qué.

Respuesta

2

Según V4Vendetta, puede desactivar el ViewState en los controles, pero entonces lo que se necesita para desarrollar de forma manual "estilo clásico ASP", por ejemplo, si necesita mantener al usuario en la página y si un formulario falla la validación, deberá establecer los valores iniciales a lo que el usuario fijó por última vez, de lo contrario, los datos del usuario se perderían.

Los controles ASP Net manejan esto de una forma un poco más elegante conservando esta información en ViewState. Pero si nunca necesita volver a representar el control, o si renderiza los datos de control cada vez sin necesidad de su estado anterior (por ejemplo, una cuadrícula paginada), deshabilitar ViewState para el control le ahorrará ancho de banda.

Una buena explicación de ViewState here.

+0

Aquí hay otro buen artículo en Ver estado http://aspnetresources.com/articles/ViewState –

1

Viewstate es la técnica de administración de estado de ASP.NET que se introdujo para mantener el estado de la página actual entre ida y vuelta al servidor. Puede desactivarlo si no desea esta característica, se basa exclusivamente en cómo implementa sus páginas.

<%@ Page EnableViewState=”false”%> 
+0

Entiendo que, sin embargo, estoy tratando de descubrir por qué se introdujo en primer lugar. ¿Hay algún caso especial cuando el uso de ViewState es obligatorio? –

+0

Para mantener los estados para las devoluciones, para que los valores se conserven, deberá establecerlo siempre en la carga de la página – V4Vendetta

4

La razón más obvia por la que se introdujo ViewState en ASP.Net fue para permitir un modelo de programación similar a winform (basado en eventos).

Cuando se tiene un control del lado del servidor (un cuadro de texto, por ejemplo), la página HTML enviada de vuelta al navegador contiene:

  • el valor inicial del control, codificada en el estado de vista => este valor no puede ser modificado por el navegador/usuario
  • el propio control => el navegador/usuario puede modificar su estado

Cuando el formulario se envía de vuelta al servidor, el motor subyacente ASP.Net comparará el nuevo valor de control con el valor inicial que se almacenó en el ViewState. Si no es lo mismo, se activará un evento OnChange y podrá adjuntarlo como lo haría en una aplicación winform.

+0

¿Qué pasa con otros eventos? al igual que los clics de los botones, el clic y el movimiento del mouse? ¿Puedes decirnos cómo asp.net framework detecta esos eventos? –

Cuestiones relacionadas