2008-11-14 31 views
6

¿Cómo puedo deshacerme de:¿Cómo deshacerse del estado de vista por completo en .NET

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

completamente!

+0

Es obvio que usted quiere deshacerse del estado de vista por completo, pero, si quería simplemente optimizarlo, en lugar de desactivarlo, puede encontrar mi respuesta a otra pregunta útil: http://stackoverflow.com/a/3865762/205245 –

Respuesta

11

Es necesario añadir el EnableViewState = "false" a la directiva @ Page en el archivo Default.aspx.

<%@ Page Language="C#" AutoEventWireup="true" 
Codebehind="Default.aspx.cs" Inherits="Sample._Default" 
EnableViewState="false" %> 

A continuación, agregue el código siguiente al archivo Default.aspx.cs. Esto elimina el campo oculto del HTML generado.

#region Disable ViewState 
    protected override void SavePageStateToPersistenceMedium(object state) 
    { 
    } 
    protected override object LoadPageStateFromPersistenceMedium() 
    { 
     return null; 
    } 
    #endregion 
+0

Como se explica a continuación, es más fácil deshabilitar el estado de visualización en el nivel web.config (o incluso el nivel machine.config). Monsignor

+0

Me pregunto por qué eso no funciona para mí. Todavía tiene ViewState en las solicitudes GET. – ajeh

+0

Lo hice y viewstate todavía está allí. Cualquier elemento que tenga 'runat = server' también tiene viewstate deshabilitado, viewstate está deshabilitado en' web.config', ¡pero la maldita cosa sigue ahí! – ajeh

4

creo que se puede desactivar en machine.config:

< Páginas enableViewState = "false" />

Eso debería desactivar estado de vista para todas las páginas.

5

En el nivel de control, EnableViewState = "false".

En el nivel de la página, EnableViewState = false en la directiva de la página.

A nivel applicaiton añadir esto a .config, < páginas enableViewState = "false">

+0

Implementado todo eso y aún teniendo ViewState. – ajeh

1
#region Disable ViewState 
protected override void SavePageStateToPersistenceMedium(object state) 
{ 
} 
protected override object LoadPageStateFromPersistenceMedium() 
{ 
    return null; 
} 
#endregion 

Ésta es awesome.However, sólo para que todos sepan que todavía está haciendo un campo oculto ViewState vacío

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" /> 
+1

Sería mejor si agregas esto como un comentario, no como una respuesta. – Monsignor

Cuestiones relacionadas