2009-07-31 20 views
8

Estoy construyendo una aplicación en ASP.NET 2.0 y el valor para el estado de vista es enorme:valor ViewState grande en ASP.NET

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTExNz... 

El valor contiene 535.000 caracteres. ¿Esto es normal? ¿Cómo puedo hacer que sea más pequeño?

Respuesta

11

Mire en enabling ASP.NET tracing para sus páginas web - eso le dirá qué controles están almacenando cuánto está en estado de visualización. A continuación, puede ir y desactivar el estado de vista para los controles que sabe que no los está usando.

+0

Gracias por la sugerencia. El problema era una lista desplegable que se llenó desde una base de datos. No sé por qué tenía un gran estado visual. – Jaelebi

+0

Recomiendo el enfoque de programación sin viewstate; habilitar y usar solo si es requerido por el formulario y/o controles. En este caso, es posible que desee evaluar si ViewState es necesario para este control en particular. Si no está seguro, deshabilítelo en el nivel de control, vea qué se rompe y luego vuelva a habilitarlo. El tamaño de ViewState puede ser múltiplos del tamaño real de los datos del control, por lo que debe completar los datos con moderación, solo incluya lo que se necesita. – Matt

6

ViewState puede ponerse feo. Básicamente, diría que el problema es que ViewState está habilitado por defecto en todo, y un lote de cosas no necesita ser. El ejemplo más básico sería Label objects.

Intente deshabilitar ViewState donde lo encuentre innecesario (EnableViewState es la propiedad que está buscando).

+0

¿Dependería de los objetos por página o en toda la aplicación? – Jaelebi

+0

Dependerá de los objetos en esa página. –

+1

Puede valer la pena agregar un ejemplo: '' – Blixt

2

Si escribe un poco de código, puede almacenar el estado de vista en su servidor en lugar de enviarlo a través de la red para un viaje de ida y vuelta. También puede comprimirlo para ahorrar espacio/ancho de banda y tiempo de carga.

Here es algo que escribí hace un tiempo.

+0

Abajo voto debido a deadlink –

+0

Agregó el enlace correcto. – Rakhitha

Cuestiones relacionadas