Domanda

Devo prendere la rappresentazione con codifica base64 di ViewState.Ovviamente, questo non sarebbe disponibile fino a una fase piuttosto avanzata del ciclo di vita della richiesta, il che è OK.

Ad esempio, se l'output della pagina include:

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

Ho bisogno di un modo sul lato server per ottenere il valore "/wEPDwUJODU0Njc5MD...=="

Per chiarire, ho bisogno di questo valore durante il rendering della pagina, non su PostBack.per esempio.Ho bisogno di conoscere il valore ViewState in corso inviato al client, non al ViewState che ricevo da loro.

È stato utile?

Soluzione

Rex, sospetto che un buon punto di partenza sia rappresentato dalle soluzioni che comprimere il ViewState - stanno catturando ViewState sul server prima che venga inviato al client e lo comprimono.E' esattamente dove vuoi essere.

Altri suggerimenti

Guarda questo post sul blog dove l'autore descrive un metodo per sovrascrivere il comportamento predefinito per generare ViewState e mostra invece come salvarlo sull'oggetto Session del server.

In ASP.NET 2.0, ViewState viene salvato da un discendente della classe Pagestatepersister.Questa classe è una classe astratta per il salvataggio e il caricamento di ViewsState e ci sono due discendenti implementati di questa classe in .NET Framework, denominato HiddenfieldPagestatepersister e SessionPagestatepersister.Per impostazione predefinita HiddenfieldPagestatePersister viene utilizzata per salvare/caricare le informazioni di ViewState, ma possiamo facilmente far funzionare la sessionPagestatepersister e salvare ViewState nell'oggetto sessione.

Anche se non ho testato il suo codice, sembra mostrare esattamente quello che vuoi:un modo per ottenere l'accesso al codice ViewState mentre si è ancora sul server, prima del postback.

Ho abilitato la compressione seguendo articoli simili a quelli pubblicati sopra.La chiave per accedere a ViewState prima che l'applicazione lo invii stava sovrascrivendo questo metodo;

protected override void SavePageStateToPersistenceMedium(object viewState)

Puoi chiamare il metodo di base all'interno di questo override e quindi aggiungere qualsiasi logica aggiuntiva necessaria per gestire ViewState.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top