La domanda più frequente che si trova nei forum è: come impedire che l'utente prema "indietro" sul browser?
Non c'è un metodo unico, dovrete aspettare Avalon :-D
Scherzi a parte, esiste un metodo document.location.replace compatibile con praticamente tutte le versioni dei browser per aprire una nuova pagina al posto di quella attuale. Il risultato è che le pagine visitate non vengono registrate nella history e raggiungiamo così lo scopo.
Bastano poche righe per fare un custom control che crea link non registrabili nella history:
public class SmartLink : HyperLink
{
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, "document.location.replace(this.href);return false;");
base.AddAttributesToRender (writer);
}
}
Resta il problema dei post dei moduli. Io non conosco nessuna funzione di JavaScript per evitare questo, ma mi è venuto in mente un trucchetto. Basta trasformare la richiesta POST in una GET passando tramite querystring i campi della form così da sfruttare il metodo replace. La classe System.Web.UI.Page dirigerisce la richiesta GET come un postback perché trova nella querystring i parametri __VIEWSTATE e __EVENTTARGET.
Ovviamente non è il massimo come soluzione. Un modulo troppo grosso potrebbe produrre una url troppo lungo per il browser o per il webserver e gli amministratori non saranno contenti di vedersi riempito il log :-D
Farò probabilmente uno script a riguardo...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- LINQ, lazy loading e architettura, l'11 marzo 2011 alle 18:42
- MetadataDiffViewer: aggiornato al .NET Framework 4.0, Silverlight 4.0 e Sharepoint 2010, il 7 gennaio 2010 alle 13:58
- .NET Framework 4.0 beta 1: Windows Communication Foundation, il 18 maggio 2009 alle 16:00
- Parallelizzare in Silverlight 2.0, il 21 aprile 2009 alle 00:25
- Silverlight: performance dell'isolated storage, il 16 aprile 2009 alle 17:38
- MetadataDiffViewer: differenze tra i framework, il 15 aprile 2009 alle 18:56