ATTENZIONE: Questo sito impiega diversi tipi di cookies. Alla pagina MAGGIORI INFORMAZIONI è possibile avere informazioni aggiuntive. Cliccando su ACCETTO o continuando a navigare sul sito acconsenti al loro utilizzo.
<aprile 2024>
lunmarmergiovensabdom
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
Immagini

ASP.NET - Cambiare master page a runtime

Per cambiare la masterpage a runtime in una pagina è sufficiente fare l'override dell'evento PreInit della pagina, e qui inserire la seguente riga di codice:


    protected void Page_PreInit(object sender, EventArgs e)
    {
        this.MasterPageFile = "myPage.master";
    }




Questa possibilità ci può tornare molto utile quando vogliamo fare un sito ottimizzato per i PC e uno per i cellulari.
I passi da seguire sono i seguenti:
  • Creare una classe BasePage che modifica la System.Web.UI.Page
  • In questa pagina fare l'override dell'evento PreInit, come in questo esempio, dove uso il metodo Check dispositivo mobile

    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (CUtility.isNull(this.MasterPageFile) != "")
        {
            if (CUtility.isBrowserMobile())
                this.MasterPageFile = "mobile.master";
            else
                this.MasterPageFile = "classic.master";
        }
    }

  • Aggiornare tutte le pagine del sito in modo che implemetino la BasePage e non la System.Web.UI.Page
  • A questo punto ci si può concentrare a fare le nostre pagine senza preoccuparsi più dell'ottimizzazione per il mobile, perchè ci penserà la BasePage a cambiarci la master page, unico punto che dovremo ottimizzare per i diversi dispositivi

Notifiche