2009-06-18 16 views
7

Quiero deshabilitar viewstate para casi todas mis páginas y he utilizado el elemento para hacerlo en mi web.config.¿Por qué mi página @ enableviewstate no está sobre el EnableViewsate de la página en el web.config?

En una página que utiliza específicamente viewstate, utilicé EnableViewState = true. Sin embargo, la página no funciona y las listas desplegables que dependen de viewstate no se rellenan en la devolución de datos.

En un esfuerzo por tratar de encontrar un patrón, pude DESHABILITAR específicamente viewstate en el nivel de página mientras que web.config se estableció en true, pero parece que no puedo hacer lo contrario donde está el web.config establecer en falso y la página se establece en verdadero.

¿Alguna idea sobre algo más que pueda estar en conflicto?

ACTUALIZACIÓN: He creado un nuevo proyecto en blanco para experimentar con esto y al parecer, ya sea ASP.NET está roto o no tenía la intención de trabajar de esta manera. Si habilito ViewState = false en web.config no puedo volver a activarlo en el nivel de página. Sin embargo, si lo configuro como verdadero, puedo desactivarlo a nivel de página.

ACTUALIZACIÓN DE LA ACTUALIZACIÓN: Lo tengo que trabajar en el proyecto en blanco. No estoy exactamente seguro de qué cambió eso que lo hizo funcionar repentinamente. Ahora tengo el conjunto web.config en falso y la página configurada en verdadero y la página retiene el estado de vista en una devolución de datos. Esto significa que es algo específico de mi proyecto más grande y complejo.

+0

Lanzando una recompensa por esto. Mi aplicación base funciona como se esperaba ... Comenzaré a probar módulos individuales desde mi aplicación de producción, pero cualquiera que publique algo que me lleve a lo que está interfiriendo recibirá mi voto por la recompensa. –

Respuesta

4

Así que la respuesta es que si cambia la página maestra en la página sin establecer la propiedad EnableViewState de la página maestra en EnableViewState de la página, entonces obtendrá el comportamiento descrito en la pregunta.

Hay un HttpModule que cambia la página maestra en función de algunos criterios establecidos por otras partes de la aplicación. Al establecer MasterPage.EnableViewState = Page.EnableViewState en la propiedad OnInit de la página Master, pude restaurar el comportamiento esperado.

+0

Sé que esto es viejo, pero tuve que hacer 'Page.Master.EnableViewState = Page.EnableViewState' –

0

Según lo que he observado en .NET 2.0, deshabilitar el ViewState en una página o nivel de aplicación lo deshabilitará para todos los elementos secundarios, independientemente de lo que los elementos hijo especifiquen en sus propiedades enableviewstate.

Si desea usar viewstate, incluso para un solo control, no puede establecer enableviewstate en falso en la página o nivel de aplicación.

+0

Esto no es correcto. He creado un proyecto en blanco (como se muestra en mi actualización) y el comportamiento es el esperado, si el web.config se establece como falso pero la página se establece como verdadera, viewstate funciona. –

Cuestiones relacionadas