Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Ignorare completamente il viewstate

    Ciao,
    ho una domanda che riguarda il viewstate.

    -Ho una pagina ASPX in cui ho disabilitato il viewstate.
    -Poi ho una pagina html, che copia il contenuto della pagina aspx, (come se facessi una salva con nome (dal browser) della pagina aspx e la salvassi su una pagina html)
    -Se nella pagina html clicco su un bottone, quello che avviene è che dalla mia pagina prova.htm mi carica la prova.aspx, la quale poi gestisce il click sul mio bottone.

    Tutto funziona, ma ogni tanto però mi capita un errore di convalida dei dati, dovuto ad un viewstate errato.

    Il problema lo risolvo rigenerando la pagina html.

    C'è un modo per dire alla pagina html di ignorare completamente il valore del mio viewstate? Anche se questo non è corretto?
    (tanto io in questo caso non lo suo il viewstate...)

    Nella pagina html c'è una riga:

    <input type="hidden" name="__VIEWSTATE" value="dDwtMTk3ODQ2ODAyNTs7bDxSaWNlcmNhOmltZ2JSaWN lcmNhOz4+wU7a2yxO8QyokQL+BlA7k/tb7Vw=" />

    è questa che mi crea problemi!

    Se nel file html la cancello, l'errore di viewstate non mi compare più in nessun caso.

    Per adesso la soluzione brutale di eliminarla mentre creo il file html. Secondo voi, c'è un modo più semplice?


    grazie per l'attenzione,
    Luigi
    Luigi

    voglia di inter-rail?
    http://spazioweb.inwind.it/inter_rail2001/

  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Tu vuoi usare una pagina per l'interfaccia utente e un'altra per gestire l'invio al server. Non comprendo l'utilità di questa operazione

  3. #3
    Si, in effetti la cosa è un po' complicata...
    (Sono sicuro ci sia un modo migliore, ma quando ci ho pensato su, non sono giusto ad un conclusione...)

    Io ho la mia pagina aspx, ma devo fare in modo che sul sito venga vista come una pagina statica html.

    Avendo però nella pagina originale aspx degli usercontrol, e il form che punta alla pagina stessa (per gestire gli eventi come click su bottoni ed altro), quando dalla pagina html clicco su un bottone mi viene invocata la pagina aspx.

    Il problema è che un viewstate "non aggiornato" (non so se si possa difinire un problema di viewstate non aggiornato, ma penso di si, perché ad esempio l'errore mi capita quando sovrascrivo la dll della cartella bin) mi causa un errore quando dalla pagina html viene caricata la pagina aspx corrispondente.

    O elimino brutalmente la riga dalla pagina html che contiene quel minimo di viewstate, oppure trovo un modo per dire alla pagina aspx (da codice) di ignorarlo.

    Pensavo ad una soluzione del tipo:
    ridefinire il metodo LoadPageStateFromPersistenceMedium() che lancia l'eccezione, lasciandolo vuoto, ma non sono molto sicuro degli effetti indesiderati di tale scelta.

    Luigi
    Luigi

    voglia di inter-rail?
    http://spazioweb.inwind.it/inter_rail2001/

  4. #4
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    Quindi fai tutto questo solo per l'estensione del file?

  5. #5
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    In realtà il metodo che dovresti ridefinire e lasciare vuoto è SavePageStateToPersistenceMedium, l'avevo fatto diverso tempo fa e purtroppo non ricordo i vari problemi che questo può causare
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  6. #6
    grazie, ora provo e ti faccio sapere.

    la soluzione che ipotizzavo, cioè cancellare dall'html la stringa che ho indicato nel post prima non va bene, perche così devo cliccare su un pulsante di un form 2 volte per avere il comportamento che voglio associato al pulsante:

    cioè devo fare html->aspx->aspx

    invece io devo fare

    html->aspx

    ora provo con la ridefinizione del metodo.
    grazie

    Luigi


    PS: il motivo per cui faccio tutto ciò e dato dal fatto che date le pagine

    prova.aspx?ID=1
    prova.aspx?ID=2
    prova.aspx?ID=3

    queste devono essere viste dall'utente come

    prova.aspx?ID=1 = animali.html
    prova.aspx?ID=2 = piante.html
    prova.aspx?ID=3 = rocce.html

    ciao
    Luigi

    voglia di inter-rail?
    http://spazioweb.inwind.it/inter_rail2001/

  7. #7
    Ho risolto.

    Ridefinire il comportamento dei metodi indicati non ha funzionato, perché in quel modo perdevo il postback...

    La soluzione è stata quella di postare il form con javascript, eliminando in questo modo il viewstate.

    vedi: http://www.codeproject.com/aspnet/jsnopostback.asp

    Ciao a tutti,
    Luigi
    Luigi

    voglia di inter-rail?
    http://spazioweb.inwind.it/inter_rail2001/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.