que estoy tratando de limpiar un sitio ASP.NET Web Forms antiguo que tiene ViewState habilitada en todas partes. Este es un problema de rendimiento: los enormes viewstates causan retrasos de envío notables. Pero la mayoría de los formularios realmente no parecen necesitar ViewState, excepto algunos datos de formulario complejos de control &. Sin embargo, incluso los formularios sin controles de entrada generan grandes estados de visualización porque supongo que asp.net almacena todos los tipos de metadatos sobre cada uno de los controles de servidor. Pero el estado de visibilidad, etc., está controlado por código, así que creo que puedo eliminar mucho.viewstate- confundidos por `` EnableViewState` y ViewStateMode` en asp.net 4.0
Es bastante oneroso agregar EnableViewState="false"
a cada control (en una página y creado en código) que no lo necesita, por lo que estoy tratando de deshabilitarlo en un nivel de página/control, y activarlo selectivamente para cosas que lo necesitan (Sí, me doy cuenta de que esto es arriesgado, pero en realidad solo hay un par de formularios grandes y un par de plantillas que, si se abordan, marcarán una gran diferencia).
Esto es lo que no estoy recibiendo.
Si un control o página tiene EnableViewState="false"
es su descriptor <%.. %>
, o en su etiqueta donde se creó en la página primaria, todo se rompe, porque los datos de ViewState añadidos en el código no funcionan. Así que parezco poder dejarlo habilitado en el nivel de control, pero establecí EnableViewState
en falso para un control de envoltura en cada contenedor, y luego configuré ViewStateMode=true
(lo que supera eso) en un nivel por control.
Lo que no recibo es lo que sucede cuando:
ViewStateMode = ViewStateMode.Enabled
y EnableViewState = false
para un control que contiene otros controles.
para un control. ¿Se pueden habilitar los controles internos aún con ViewStateMode
? Básicamente, ¿qué configuración tiene la última palabra cuando entran en conflicto?
Para cada contenedor, quiero ser capaz de desactivar todo en un control contenedor pero aún así asegurar que:
1) configuración ViewState en el trabajo código, y
2) ViewState está desactivado para todos los controles de forma predeterminada y
3) Puedo habilitar selectivamente ViewState para los subcontroles.
Ésta parece ser la confusión. Si tengo un control de envoltura en la página maestra que está establecido en EnableViewState="false"
, pero luego configuro un subcontrol en ViewStateMode="Enabled"
, se rompe. Según MS, ViewStateMode debe reemplazar cualquier configuración externa de ViewState, pero parece que no funciona.
Esta pregunta es muy fácil de responder si se le da una pieza clave de información: ¿Qué versión de ASP.NET? –
¡Lo siento! Asp.net 4.0. –