Pregunta

Si tengo una pieza de datos simple para almacenar (un entero o una cadena, por ejemplo), podría elegir almacenarla en ViewState o usar un control HiddenField.

¿Por qué elegiría uno sobre el otro?

ViewState

  • Difícil para el usuario decodificar (no es imposible), lo que podría ser deseable

HiddenField

  • El valor se puede usar en JavaScript

¿Hay otros pros y contras?

¿Fue útil?

Solución

En realidad no, ViewState se almacena en un campo oculto, por lo que la única diferencia real es la codificación.

A menos que necesite manipular el valor con JavaScript o si desea desactivar ViewState en esta página, usaría ViewState. Principalmente solo porque hay herramientas de terceros ( como esta ) que entienden ViewState y que ganó no entiendo su campo oculto personalizado.

Otros consejos

Desde un punto de vista de mantenibilidad, usaría ViewState. Es menos código para escribir, lo que se reduce a menos puntos de falla en su software. También significa que cualquier desarrollador que venga después de usted tendrá más facilidad para mantener su solución.

Si no está completamente cómodo con eso, escriba un descriptor de acceso a la propiedad en la página que actúe como fachada para recuperar el valor de ViewState. Más tarde, si se siente obligado a convertirlo en un campo oculto, el descriptor de acceso puede manejar ese cambio aparentemente por el resto del código. Solo asegúrese de documentar sus razones para hacerlo.

ViewState se almacena en la propia página, por lo que aumenta el tamaño de la página y puede causar problemas de rendimiento .

También podemos configurar la aplicación para guardar el estado de la vista en el servidor en lugar de en la propia página, lo que podría proteger de algunos problemas de seguridad.

Jomit

Los campos ocultos son invisibles en la página y sus valores se pueden ver en la fuente de vista, pero el valor del estado de vista está codificado y no es legible.

El valor del campo oculto se publica en la página siguiente. (Nota: use server.transfer para obtener el valor de los campos ocultos).

Viewstate solo es bueno en la página en la que estás o publicando de nuevo. Con un campo oculto, puede acceder a los datos en la siguiente página a la que navega (así como a otros datos) utilizando el método PreviousPage del objeto Page de la siguiente manera:

string term = ((TextBox)Page.PreviousPage.FindControl("txtSearchTerm")).Text;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top