Condividi tramite


Procedura dettagliata: creazione e utilizzo di pagine master ASP.NET in Visual Web Developer

Aggiornamento: novembre 2007

In questa procedura dettagliata viene illustrato come creare una pagina master e diverse pagine di contenuti. Le pagine master consentono di creare un layout di pagina, vale a dire una pagina modello e quindi di creare pagine separate il cui contenuto viene unito alla pagina master in fase di esecuzione. Per ulteriori informazioni sulle pagine master, vedere Informazioni generali sulle pagine master ASP.NET.

Di seguito sono elencate le attività illustrate nella procedura dettagliata:

  • Creazione di una pagina master.

  • Creazione di una pagina ASP.NET con il contenuto da visualizzare nella pagina master.

  • Esecuzione delle pagine master per mostrare i diversi contenuti.

  • Selezione di una pagina master in fase di esecuzione.

Prerequisiti

Per completare questa procedura dettagliata è necessario:

  • Visual Studio o Microsoft Visual Web Developer Express Edition.

  • A scelta, un file jpg, gif oppure un altro file di immagine che possa essere utilizzato come logo della pagina master. È consigliabile che la larghezza del logo non sia superiore a 48 pixel. Tuttavia, la visualizzazione di un logo è facoltativa e le dimensioni esatte dell'immagine non sono fondamentali per questa procedura dettagliata.

Creazione di un sito Web

Se un sito Web è già stato creato in Visual Web Developer, ad esempio seguendo le procedure di Procedura dettagliata: creazione di una pagina Web di base in Visual Web Developer, è possibile utilizzare quel sito Web e passare alla sezione successiva Creazione di una pagina master. In caso contrario, creare un sito e una pagina Web nuovi attenendosi alla procedura riportata di seguito.

Per creare un sito Web di file system

  1. Aprire Visual Web Developer.

  2. Scegliere Nuovosito Web dal menu File.

    Viene visualizzata la finestra di dialogo Nuovo sito Web.

  3. In Modelli Visual Studio installati, fare clic su Sito Web ASP.NET.

  4. Nella casella Percorso, immettere il nome della cartella in cui salvare le pagine del sito Web.

    Digitare, ad esempio, il nome cartella C:\WebSites.

  5. Nell'elenco Linguaggio scegliere il linguaggio di programmazione con lui lavorare.

  6. Scegliere OK.

    Visual Web Developer crea la cartella e una nuova pagina denominata Default.aspx.

Creazione della pagina master

La pagina master rappresenta il modello delle pagine che saranno create. In questa sezione sarà creata innanzitutto una pagina master. In seguito, verrà utilizzata una tabella per disporre nella pagina master un menu, un logo e un piè di pagina che saranno visualizzati su ciascuna pagina del sito. Verrà inoltre utilizzato un segnaposto per il contenuto, vale a dire un'area della pagina master che può essere sostituita con delle informazioni in una pagina di contenuto.

Per creare la pagina master

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del sito Web e scegliere Aggiunginuovo elemento.

  2. In Modelli Visual Studio installati fare clic su Pagina master.

  3. Nella casella Nome, digitare Master1.

  4. Selezionare la casella di controllo Inserisci codice in file separato.

    Nota:

    In questa procedura dettagliata si presuppone l'utilizzo di file di codice sottostante per tutte le pagine. Se si sta utilizzando una pagina ASP.NET a file singolo, il codice illustrato in questa procedura dettagliata funzionerà correttamente, tuttavia verrà visualizzato nella visualizzazione Origine, non in un file di codice a parte.

  5. Nell'elenco Linguaggio scegliere il linguaggio di programmazione con lui lavorare e fare clic su Aggiungi.

    La nuova pagina master viene aperta nella visualizzazione Origine.

    Nella parte superiore della pagina è presente una dichiarazione @ Master al posto della dichiarazione @ Page che in genere si trova nella parte superiore delle pagine ASP.NET. Il corpo della pagina contiene un controllo ContentPlaceHolder che rappresenta l'area della pagina master in cui sarà unito il contenuto sostituibile delle pagine contenuto in fase di esecuzione. Il segnaposto per il contenuto sarà utilizzato più avanti nella procedura dettagliata.

Definizione del layout della pagina Master

Nella pagina master viene definito l'aspetto delle pagine del sito. La pagina master può contenere qualsiasi combinazione di testo statico e controlli. Una pagina master contiene anche uno o più segnaposto che indicano il punto in cui verrà visualizzato il contenuto dinamico quando le pagine vengono visualizzate.

In questa procedura dettagliata sarà utilizzata una tabella per posizionare gli elementi nella pagina. Si inizierà con la creazione di una tabella di layout per contenere gli elementi della pagina master. Più avanti nella sezione, verrà posizionato il controllo per il segnaposto del contenuto già presente nella pagina.

Per creare una tabella di layout per la pagina master

  1. Selezionare il file Master1.master nella visualizzazione Origine e impostare lo schema per la convalida su Microsoft Internet Explorer 6.0. Per impostare questo valore, è possibile utilizzare l'elenco a discesa nella barra degli strumenti oppure scegliere Opzioni dal menu Strumenti e fare clic su Convalida.

  2. Passare alla visualizzazione Progettazione.

  3. Dall'elenco a discesa nella parte superiore della finestra Proprietà, scegliere DOCUMENT e quindi impostare BgColor su un colore facilmente distinguibile, ad esempio il blu.

    Il colore scelto non è importante. Più avanti nella procedura dettagliata verrà creata una seconda pagina master senza alcun colore, in contrasto con l'opzione scelta in questa fase.

  4. Fare clic sulla pagina in cui si desidera collocare la tabella di layout.

    Nota:

    Non inserire la tabella di layout all'interno del controllo ContentPlaceHolder.

  5. Dal menu Tabella, scegliere Inserisci tabella.

  6. Nella finestra di dialogo Inserisci tabella creare una tabella con tre righe e una colonna, quindi scegliere OK.

  7. Posizionare il cursore nella seconda riga della tabella.

  8. Nel sottomenu Modifica del menu Tabella fare clic su Dividi celle.

  9. Nella finestra di dialogo Dividi celle, selezionare Dividi in colonne e fare clic su OK.

  10. Effettuare le seguenti impostazioni:

    • Nella riga centrale, fare clic sulla colonna più a sinistra e impostarne il campo Larghezza su 48 nella finestra Proprietà.

    • Selezionare la riga superiore e impostarne il campo Altezza su 48 nella finestra Proprietà.

    • Selezionare la riga inferiore e impostarne il campo Altezza su 48 nella finestra Proprietà.

      Nota:

      La larghezza e l'altezza possono essere impostate trascinando i bordi della cella della tabella oppure selezionando la cella e impostandone i valori nella finestra Proprietà.

  11. Selezionare tutte le celle della tabella e impostare BgColor su un colore diverso dal colore di sfondo.

Una volta definito il layout della tabella, è possibile aggiungere alla pagina master il contenuto che sarà visualizzato in tutte le pagine. Verranno aggiunti un messaggio di copyright come piè di pagina e un menu. Se disponibile, è possibile aggiungere anche un logo.

Per aggiungere contenuto statico alla pagina master

  1. Fare clic sulla cella inferiore e digitare un testo per il piè di pagina, ad esempio Copyright 2007 Contoso Inc.

  2. Dal gruppo di controlli Spostamento, nella Casella degli strumenti trascinare un controllo Menu nella cella superiore.

  3. Creare un menu attenendosi alla seguente procedura:

    1. Impostare la proprietà Orientation del controllo Menu su Horizontal.

    2. Fare clic sullo smart tag nel controllo Menu e scegliere Modifica voci di menu nella finestra di dialogo Attività menu.

  4. In Elementi, fare clic due volte sull'icona Aggiungi nodo principale per aggiungere due voci di menu:

    1. Fare clic sul primo nodo, quindi impostare Text su Home e href su Home.aspx.

    2. Fare clic sul secondo nodo, quindi impostare Text su About e href su About.aspx.

    3. Scegliere OK per chiudere la finestra di dialogo Editor delle voci di menu.

  5. Se si dispone di un file di immagine da utilizzare come logo, attenersi alla seguente procedura per posizionarlo nella pagina master:

    1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del sito Web, quindi scegliere Aggiungi elemento esistente.

    2. Passare al file di immagine, selezionarlo e fare clic su Aggiungi.

    3. Dal gruppo Standard della Casella degli strumenti, trascinare un controllo Image nella parte centrale della colonna di sinistra della tabella.

    4. Impostare la proprietà ImageUrl del controllo Image sul nome del file di immagine.

A questo punto è possibile posizionare il segnaposto per il contenuto in modo da specificare il punto della pagina master in cui visualizzare il contenuto in fase di esecuzione.

Per aggiungere un segnaposto per il contenuto

  1. Trascinare il controllo ContentPlaceHolder nella cella centrale di destra.

    La proprietà ID del controllo è ContentPlaceholder1. È possibile lasciare il nome inalterato oppure modificarlo. Se si modifica il nome, prenderne nota in quanto sarà necessario ricordarlo in seguito.

  2. Salvare la pagina.

Creazione del contenuto per la pagina master

Mediante la pagina master viene fornito il modello per il contenuto. Il contenuto di questa pagina viene definito creando una pagina ASP.NET associata alla pagina master. La pagina del contenuto è un tipo specifico di pagina ASP.NET in cui è presente solo il contenuto da unire alla pagina master. Nella pagina del contenuto, vengono aggiunti il testo e i controlli da visualizzare quando gli utenti richiedono quella pagina.

In questa procedura dettagliata, verranno aggiunte due pagine di contenuto per la pagina master. La prima è una home page, mentre la seconda è una pagina di informazioni.

Per creare la Home page

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del sito Web e scegliere Aggiungi nuovo elemento.

  2. In Modelli Visual Studio installati fare clic su Web Form.

  3. Nella casella Nome digitare Home.

  4. Nell'elenco Linguaggio scegliere il linguaggio di programmazione preferito.

  5. Selezionare la casella di controllo Seleziona pagina master, quindi scegliere Aggiungi.

    Verrà visualizzata la finestra di dialogo Seleziona pagina master.

  6. Fare clic su Master1.master, quindi scegliere OK.

    Viene creato un nuovo file .aspx. Nella pagina è presente una direttiva @ Page che collega la pagina corrente alla pagina master selezionata con l'attributo MasterPageFile, come mostrato nell'esempio di codice seguente.

    [Visual Basic]

    <%@ Page Language="VB" MasterPageFile="~/Master1.master" ... %>
    

    [C#]

    <%@ Page Language="C#" MasterPageFile="~/Master1.master" ... %>
    

    Nella pagina è presente anche un elemento controllo Content che sarà utilizzato successivamente.

Le pagine di contenuto non dispongono degli elementi che costituiscono di solito le pagine ASP.NET, ad esempio gli elementi html, body o form. Al contrario, in queste pagine viene aggiunto unicamente il contenuto che si desidera visualizzare nella pagina master, sostituendo le aree dei segnaposto create nella pagina master.

Per aggiungere contenuto alla Home page

  1. Passare alla visualizzazione Progettazione.

    I controlli ContentPlaceHolder vengono visualizzati nella pagina master come controlli Content nella nuova pagina contenuto. Il resto del contenuto della pagina master è visualizzato in modo da poterne vedere il layout. Tuttavia, appare oscurato perché non è possibile modificarlo mentre si sta modificando una pagina contenuto.

  2. Dall'elenco a discesa nella finestra Proprietà, fare clic su DOCUMENT, quindi impostare Title su Contoso Home Page.

    È possibile impostare il titolo di ciascuna pagina indipendentemente, in modo che quando il contenuto viene unito alla pagina master nel browser venga visualizzato il titolo corretto. Le informazioni relative al titolo vengono memorizzate nella direttiva @ Page della pagina del contenuto.

  3. Nel controllo Content che corrisponde a ContentPlaceHolder1 sulla pagina master, digitare Welcome to the Contoso Web Site.

  4. Selezionare il testo e quindi formattarlo come un'intestazione selezionando Intestazione 1 dall'elenco a discesa Formato blocco sopra la Casella degli strumenti.

  5. Premere INVIO per creare una nuova riga vuota nel controllo Content, quindi digitare Thank you for visiting our site.

    Il testo che viene aggiunto non è importante, è possibile digitare un testo qualsiasi che consenta di riconoscere questa pagina come home page.

  6. Salvare la pagina.

È possibile creare una pagina Informazioni su mediante la stessa procedura utilizzata per la creazione della Home page.

Per creare la pagina Informazioni su

  1. Per aggiungere una nuova pagina di contenuto denominata About.aspx.

    Accertarsi di allegare la nuova pagina alla pagina Master1.master come per la Home page.

  2. Modificare il titolo della pagina in Contoso About Page.

  3. Nell'area del contenuto, digitare About Contoso, quindi formattare il testo come Intestazione 1 selezionandolo e scegliendo Intestazione 1 dall'elenco a discesa Formato blocco al di sopra della Casella degli strumenti.

  4. Premere INVIO per creare una nuova riga, quindi digitare Since 1982, Contoso has provided high-quality software services.

  5. Salvare la pagina.

Esecuzione del test delle pagine

È possibile eseguire il test delle pagine eseguendole come una qualsiasi pagina ASP.NET.

Per eseguire il test delle pagine

  1. Passare alla pagina Home.aspx e premere CTRL+F5.

    In ASP.NET il contenuto della pagina Home.aspx viene unito al layout della pagina Master1.master in modo da formare un'unica pagina che viene visualizzata all'interno del browser. È opportuno notare che l'URL della pagina è Home.aspx; nel browser non esistono riferimenti alla pagina master.

  2. Fare clic sul collegamento Informazioni su.

    Viene visualizzata la pagina About.aspx. Tale pagina viene unita alla pagina Master1.master.

Creazione di riferimenti ai membri della pagina master

È possibile che il codice delle pagine di contenuto faccia riferimento ai membri della pagina master, incluse le proprietà pubbliche, i metodi o i controlli della pagina master. In questa parte della procedura dettagliata verrà creata una proprietà nella pagina master, quindi il valore della proprietà sarà utilizzato nelle pagine di contenuto. Si supponga che il nome dell'azienda per il sito Web venga memorizzato come proprietà nella pagina master e che tutti i riferimenti a tale nome nelle pagine di contenuto siano basati sulla proprietà della pagina master.

Il primo passaggio consiste nell'aggiungere una proprietà alla pagina master.

Per aggiungere una proprietà alla pagina master

  1. Passare alla pagina Master1.master oppure aprirla.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse su Master1.master, quindi scegliere Visualizza codice per aprire l'editor di codice.

    Nota:

    Per impostazione predefinita, Visual Web Developer crea pagine che utilizzano il modello code-behind. Se si preferisce, è possibile creare il codice utilizzando il modello a file singolo. Per ulteriori informazioni, vedere Modello di codice di pagine Web ASP.NET.

  3. Digitare il codice riportato di seguito all'interno della definizione di classe.

    Public Property CompanyName() As String
        Get
            Return CType(ViewState("companyName"), String)
        End Get
        Set(ByVal Value As String)
            ViewState("companyName") = Value
        End Set
    End Property
    
    public String CompanyName
    {
        get { return (String) ViewState["companyName"]; }
        set { ViewState["companyName"] = value; }
    }
    

    Viene creata una proprietà denominata CompanyName per la pagina master. Il valore è memorizzato in stato di visualizzazione in modo da essere conservato tra i postback.

  4. Aggiungere il codice riportato di seguito all'interno della definizione di classe (non all'interno del codice della proprietà).

    Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) _
           Handles Me.Init
       Me.CompanyName = "Contoso"
    End Sub
    
    void Page_Init(Object sender, EventArgs e)
    {
       this.CompanyName = "Contoso";
    }
    

    In questo esempio, il valore della proprietà CompanyName sarà inserito nel codice all'interno della pagina.

A questo punto è possibile modificare la pagina di contenuto in modo che venga utilizzata la proprietà CompanyName della pagina master.

Per creare un riferimento alla proprietà CompanyName nella pagina di contenuto

  1. Passare alla pagina Home.aspx oppure aprirla.

  2. Passare alla visualizzazione Origine.

  3. Nella parte superiore della pagina, al di sotto della direttiva @ Page, aggiungere la seguente direttiva @ MasterType:

    <%@ MasterType virtualpath="~/Master1.master" %>
    

    La direttiva consente di associare la proprietà Master della pagina di contenuto, che sarà utilizzata più avanti, alla pagina Master1.master.

  4. Passare alla visualizzazione Progettazione.

  5. Nel controllo Content, modificare il testo in Welcome to the Web site of .

  6. Dal gruppo Standard della Casella degli strumenti, trascinare un controllo Label nel controllo Content e posizionarlo dopo il testo statico in modo che venga visualizzato il testo:

    Welcome to the Web site of [Label]

  7. Impostare la proprietà ID del controllo Label su CompanyName.

  8. In Esplora soluzioni fare clic con il pulsante destro del mouse su Home.aspx, quindi scegliere Visualizza codice per aprire l'editor di codice.

  9. Aggiungere il codice riportato di seguito all'interno della definizione di classe.

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _
            Handles Me.Load
        CompanyName.Text = Master.CompanyName
    End Sub
    
    void Page_Load(Object sender, EventArgs e)
    {
       CompanyName.Text = Master.CompanyName;
    }
    

    La proprietà Master della pagina contenuto restituisce un riferimento alla pagina master come definito nella direttiva @ MasterType aggiunta nel passaggio 3.

A questo punto è possibile eseguire il test della pagina di contenuto per accertarsi il riferimento alla proprietà CompanyName della pagina master sia corretto.

Per eseguire il test del riferimento alla proprietà della pagina master

  1. Passare alla pagina Home.aspx oppure aprirla e premere CTRL+F5 per eseguirla.

    La pagina viene visualizzata nel browser, con il testo Welcome to the Web site of Contoso

  2. Chiudere il browser.

  3. Passare alla pagina di codice Master1.master oppure aprirla.

  4. Modificare il gestore Page_Init in modo da assegnare alla proprietà un nome azienda diverso, come nell'esempio di codice riportato di seguito.

    Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) _
           Handles Me.Init
       Me.CompanyName = "New Company Name"
    End Sub
    
    void Page_Init(Object sender, EventArgs e)
    {
       this.CompanyName = "New Company Name";
    }
    
  5. Passare alla pagina Home.aspx e premere CTRL+F5 per eseguirla nuovamente.

    Questa volta nella pagina viene visualizzato il nome azienda aggiornato.

Modifica dinamica di pagine master

In alcuni casi, è possibile decidere di modificare le pagine master in modo dinamico, ovvero utilizzando il codice per impostare la pagina master per una pagina di contenuto. È possibile, ad esempio, che si desideri consentire agli utenti di scegliere tra più layout e impostare la pagina master in base alle proprie preferenze.

In questa parte della procedura dettagliata, verrà aggiunta una seconda pagina master al sito Web e saranno creati i pulsanti che consentono all'utente di passare da una pagina master all'altra. Dal momento che le due pagine master saranno molto simili, verrà eseguita una copia della prima pagina master che sarà modificata per funzionare da seconda pagina master.

Per eseguire una copia della pagina master

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su Master1.master, quindi scegliere Copia.

  2. Fare clic con il pulsante destro del mouse sul nome del sito Web, quindi scegliere Incolla.

    Al sito Web viene aggiunta una pagina master denominata Copia di master1.master.

  3. Fare clic con il pulsante destro del mouse Copia di master1.master, scegliere Rinomina e denominare la nuova pagina master Master2.master.

  4. Aprire Master2.master e nella direttiva @ Master, modificare Master1 in Master2.

    L'aspetto della direttiva della pagina completa sarà simile al codice di esempio seguente:

    <%@ Master Language="VB" CodeFile="Master2.master.vb" Inherits="Master2" %>
    
    <%@ Master Language="C#" CodeFile="Master2.master.cs" Inherits="Master2" %>
    
  5. Passare alla visualizzazione Progettazione.

  6. Fare clic su DOCUMENT nell'elenco a discesa nella parte superiore della finestra Proprietà.

  7. Cancellare la proprietà BgColor.

    L'aspetto e le funzioni della nuova pagina master saranno simili a quelli della pagina Master1.master, tuttavia non sarà presente alcun colore di sfondo.

  8. Aprire il file di codice relativo a Master2.master e modificare il nome di classe presente nel file code-behind da Master1 in Master2 in base al valore dell'attributo Inherits contenuto nella direttiva @ Master della pagina.

    Il codice presenterà un aspetto simile a quanto illustrato nell'esempio seguente:

    Partial Class Master2
    
    public partial class Master2 : System.Web.UI.MasterPage
    

Il passaggio successivo consiste nell'aggiungere a ciascuna pagina master un pulsante che consenta all'utente di selezionare l'altra pagina master.

Per aggiungere pulsanti per selezionare una pagina master alternativa

  1. Passare alla pagina Master2.master oppure aprirla.

  2. Dal nodo Standard, della Casella degli strumenti, trascinare un controllo LinkButton nella pagina e posizionarlo al di sotto del menu nella cella superiore della tabella.

  3. Impostare la proprietà Text del pulsante su Colorful.

  4. Fare doppio clic sul pulsante per creare un gestore per il relativo evento Click, quindi aggiungere il codice evidenziato riportato di seguito.

    Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)_
            Handles LinkButton1.Click
        Session("masterpage") = "Master1.master"    Response.Redirect(Request.Url.ToString())
    End Sub
    

    [C#]

    void LinkButton1_Click(Object sender, EventArgs e)
    {
       Session["masterpage"] = "Master1.master";   Response.Redirect(Request.Url.ToString());
    }
    

    Nel codice viene caricato il nome file della pagina master alternativa in una variabile di sessione permanente, quindi viene ricaricata la pagina corrente. La proprietà Url restituisce un oggetto Uri che fa riferimento alla pagina corrente. Più avanti, nella pagina di contenuto sarà creato un codice nel quale verrà utilizzato il nome della pagina master.

  5. Passare alla pagina Master1.master oppure aprirla nella visualizzazione Progettazione.

  6. Aggiungere un controllo LinkButton come nei passaggi 1 e 2, quindi impostarne la proprietà Text su Plain.

  7. Fare doppio clic sul pulsante Plain per creare un gestore per il relativo evento Click, quindi aggiungere il codice evidenziato riportato di seguito.

    Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)_
            Handles LinkButton1.Click
        Session("masterpage") = "Master2.master"    Response.Redirect(Request.Url.ToString())
    End Sub
    
    void LinkButton1_Click(Object sender, EventArgs e)
    {
       Session["masterpage"] = "Master2.master";   Response.Redirect(Request.Url.ToString());
    }
    

    Si tratta di un codice identico a quello utilizzato per il pulsante nella pagina Master2.master, ad eccezione del fatto che consente di caricare una pagina master alternativa.

A questo punto nella pagina di contenuto viene scritto il codice che consentirà di caricare in modo dinamico la pagina master selezionata dall'utente.

Per scrivere il codice per selezionare la pagina master in modo dinamico

  1. Passare alla pagina About.aspx oppure aprirla.

    Nota:

    Nella Home page già creata è presente una direttiva @ MasterType che consente di associarla a una singola pagina master (Master1.master). Pertanto, non sarà possibile assegnare pagine master in modo dinamico alla Home page e saranno quindi utilizzate altre pagine create.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse su About.aspx, quindi scegliere Visualizza codice per aprire l'editor di codice.

  3. Aggiungere il codice riportato di seguito all'interno della definizione di classe.

    Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) _
            Handles Me.PreInit
       If Not Session("masterpage") Is Nothing Then
          Me.MasterPageFile = CType(Session("masterpage"), String)
       End If
    End Sub
    
    void Page_PreInit(Object sender, EventArgs e)
    {
       if(Session["masterpage"] != null)
       {
          this.MasterPageFile = (String) Session["masterpage"];
       }
    }
    

    Mediante il codice, il valore della proprietà MasterPageFile della pagina corrente viene impostato sul valore della variabile di sessione, se presente. Tale codice dovrà essere eseguito nel gestore Page_PreInit; non può essere eseguito in un gestore successivo (ad esempio, nel gestore Page_Init), in quanto la pagina master dovrà essere definita in modo che sia possibile crearne un'istanza prima che si verifichino ulteriori inizializzazioni.

È ora possibile eseguire il test delle pagine master dinamiche.

Per eseguire il test delle pagine master dinamiche

  1. Nella pagina About.aspx, premere CTRL+F5 per eseguire la pagina.

    La pagina viene visualizzata nel browser unita alla relativa pagina master predefinita, Master1.master.

  2. Fare clic sul collegamento Plain.

    La pagina viene visualizzata nuovamente, tuttavia unita alla pagina Master2.master, nella quale non è presente un colore di sfondo.

  3. Fare clic sul collegamento Colorful.

    La pagina viene visualizzata nuovamente utilizzando la pagina Master1.master.

Note sull'utilizzo di pagine master

Quando si utilizza una pagina master, sono necessarie le seguenti considerazioni:

  • In un'applicazione reale, è probabile che informazioni quali il nome dell'azienda vengano memorizzate nel file di configurazione e lette direttamente nelle pagine di contenuto. Tuttavia, lo scenario delineato in questa sede rappresenta una descrizione semplice della modalità di creazione di un riferimento ai membri della pagina master nelle pagine di contenuto.

  • È possibile accedere ai membri della pagina master anche senza includere una direttiva @ MasterType. Tuttavia, a questo scopo, è necessario eseguire il cast della proprietà Page.Master al tipo di pagina master appropriato (il valore della proprietà Master è null se per una pagina non è presenta la pagina master). Per ulteriori informazioni, vedere la classe Utilizzo di pagine master di ASP.NET a livello di codice.

È possibile creare un riferimento ai controlli della pagina master utilizzando il metodo Master.FindControls. Per ulteriori informazioni, vedere la classe Utilizzo di pagine master di ASP.NET a livello di codice.

Quando si utilizzano pagine master dinamiche, sono necessarie le seguenti considerazioni:

  • Lo scenario per la modifica delle pagine master illustrato in questa sezione è semplificato in modo che la procedura dettagliata sia incentrata sulle pagine master. In un'applicazione reale, è più probabile che i layout tra cui effettuare la scelta siano più numerosi e che quindi la scelta dell'utente venga memorizzata mediante l'utilizzo di profili. Per informazioni, vedere Cenni preliminari sulle proprietà dei profili ASP.NET.

  • Il sito Web in uso può essere configurato in modo che per tutte le pagine venga utilizzata la stessa pagina master. È possibile che per alcune pagine occorra utilizzare una pagina master alternativa; in tal caso, il codice può essere configurato in modo simile a quello illustrato in questa sezione della procedura dettagliata. Per ulteriori dettagli, vedere "Ambiti delle pagine master" in Informazioni generali sulle pagine master ASP.NET.

  • Per eseguire l'override della pagina master predefinita, è necessario aggiungere codice dalla pagina Home.aspx a tutte le pagine in cui si desidera eseguire tale operazione.

Passaggi successivi

In questa procedura dettagliata viene illustrata la funzionalità di base delle pagine master. È possibile sperimentare ulteriori funzionalità delle pagine master. Può, ad esempio, essere necessario:

  • Creare pagine master con più segnaposto per il contenuto. Successivamente è possibile riempire uno o più segnaposto con il contenuto per ciascuna pagina che si desidera visualizzare.

  • Definire segnaposto per il contenuto con contenuto predefinito. Se in una pagina ASP.NET non viene fornito il contenuto per il segnaposto, nella pagina master viene visualizzato il contenuto predefinito.

  • Accedere ai membri della pagina master dalle pagine di contenuto a livello di codice. In tal modo è possibile modificare in modo dinamico l'aspetto della pagina master in fase di esecuzione. Per informazioni, vedere Procedura: fare riferimento a contenuto di pagine master ASP.NET.

  • Utilizzare filtri di periferica con le pagine master in modo da creare layout diversi per dispositivi differenti, ad esempio un layout per i browser e un altro per un tipo di telefono specifico. Per informazioni dettagliate, vedere Cenni preliminari sul filtro di periferica ASP.NET.

  • Apprendere come inserire pagine master all'interno di pagine master in modo da creare parti con componenti. Per informazioni, vedere Pagine master ASP.NET nidificate.

Vedere anche

Concetti

Informazioni generali sulle pagine master ASP.NET

Eventi nelle pagine master e nelle pagine di contenuto ASP.NET