¿Cuál es la diferencia entre SessionState y ViewState?

117

¿Cuál es la diferencia entre SessionState y ViewState en ASP.NET?

Natrio
fuente
7
Probé con Google, pero no pude encontrar una descripción general.
Natrium

Respuestas:

143

El estado de la sesión contiene información que pertenece a una sesión específica (por un cliente / navegador / máquina en particular) con el servidor. Es una forma de rastrear lo que el usuario está haciendo en el sitio ... en múltiples páginas ... en medio de la apatridia de la Web. por ejemplo, el contenido del carrito de compras de un usuario en particular son datos de sesión. Las cookies se pueden utilizar para el estado de la sesión.
View State, por otro lado, es información específica de una página web en particular. Se almacena en un campo oculto para que no sea visible para el usuario. Se utiliza para mantener la ilusión del usuario de que la página recuerda lo que hizo en ella la última vez; no le dé una página limpia cada vez que vuelva a publicar. Consulte esta página para obtener más información .

Gishu
fuente
96

El estado de la sesión se guarda en el servidor, ViewState se guarda en la página.

El estado de la sesión generalmente se borra después de un período de inactividad del usuario (no sucedió ninguna solicitud que contenga el ID de la sesión en las cookies de solicitud).

El estado de la vista se publica en la publicación posterior en un campo oculto.

pensar antes de codificar
fuente
30
+1 Sí: punto importante de que ViewState viaja hacia arriba y hacia abajo entre el cliente y el servidor, pero SessionState permanece en el servidor.
Gordon Mackie JoanMiro
1
Esta debería haber sido la respuesta oficial
Fandango68
33

SessionState

  • Puede conservarse en la memoria, lo que la convierte en una solución rápida. Lo que significa que el estado no se puede compartir en Web Farm / Web Garden.
  • Puede conservarse en una base de datos, útil para Web Farms / Web Gardens.
  • Se borra cuando la sesión termina, generalmente después de 20 minutos de inactividad.

ViewState

  • Se envía de un lado a otro entre el servidor y el cliente, ocupando ancho de banda.
  • No tiene fecha de vencimiento.
  • Es útil en un Web Farm / Web Garden
Jesper Fyhr Knudsen
fuente
14

Uso: si va a almacenar información a la que desea acceder en diferentes páginas web, puede usar SessionState

Si desea almacenar información a la que desea acceder desde la misma página, puede usar Viewstate

Almacenamiento El Viewstate se almacena dentro de la propia página (en texto cifrado), mientras que el Sessionstate se almacena en el servidor.

El SessionState se borrará en las siguientes condiciones

  1. Autorizado por el programador
  2. Autorizado por el usuario
  3. Se acabó el tiempo
Cyril Gupta
fuente
5
ViewStates no está encriptado. Simplemente tienen ese aspecto, pero se pueden decodificar fácilmente.
Vandel212
5

La sesión se utiliza principalmente para almacenar datos específicos del usuario [datos específicos de la sesión]. En el caso de la sesión, puede usar el valor para toda la sesión hasta que caduque o el usuario abandone la sesión. Viewstate es el tipo de datos que tiene alcance solo en la página en la que se usa. No puede tener valores de estado de vista accesibles a otras páginas a menos que transfiera esos valores a la página deseada. Además, en el caso de viewstate, todos los datos de control del lado del servidor se transfieren al servidor como un par de valor clave en __Viewstate y se transfieren de nuevo y se representan al control apropiado en el cliente cuando se produce la devolución de datos.

rahul
fuente