2009-11-25 9 views
5

Posso essere pazzo, ma le pagine master mi spaventano perché temo che una volta che sono bloccato a utilizzare una pagina master, incontrerò una situazione in cui voglio ereditare solo il 90% del contenuto visivo della pagina master, forzando me per rompere l'eredità e quindi dover riprodurre il contenuto che era nel master e portarlo nel bambino.Le pagine mastro sono la strada da percorrere?

Sento che questo è un problema con qualsiasi tipo di "ereditarietà" in quanto bisogna stare attenti, ma sembra che almeno si possano sovrascrivere i metodi in una classe regolare.

Probabilmente non sono troppo coerente qui, ma i controlli utente sembrano darti più flessibilità. L'unico inconveniente è che devi trascinarli su un webform. Per quello, dico un grosso problema.

La conversione della mia app dall'utilizzo di usercontrols in pagine master mi spaventa e ho paura che il mio Javascript si interrompa.

Commenti?

risposta

1

Come hai detto, i problemi di ereditarietà possono comparire ovunque. Non lavorare troppo presto.

Con il problema delle pagine master che descrivi, puoi scambiare/disconnettere diversi file CSS e utilizzare i selettori per nascondere/modificare parti del codice HTML generato dalla pagina master.

8

Non considererei non utilizzando le pagine master. Puoi sempre nidificare le pagine mastro se vuoi condividere la maggior parte del chrome sulla maggior parte delle pagine, chrome interno per condividere in un silos ecc.

+0

+1 per menzionare il nesting ... è quello che farei. –

+0

Immagino che cosa stai dicendo, mentre tu personalmente non li useresti, se lo facessi, li anniderai per darti la massima flessibilità. Non seguo il chrome interno, punto silo, ma perché non li useresti? – ChadD

+0

Quindi supponiamo di volere un'intestazione e un foglio di stile comuni su ogni pagina; Avrei una pagina principale principale. Quindi, in un'area specifica del mio sito, ad esempio nell'area del mio blog, avrei un'altra pagina principale che avrebbe la pagina principale principale all'esterno e il contenuto della pagina all'interno. Posso annidare le pagine mastro all'interno di altre pagine mastro per condividere vari livelli di contenuti simili su diverse pagine. – Mark

13

Non aver paura.

È possibile creare tanti segnaposto a piacere, rendendo la pagina master molto dettagliata. Questi segnaposto possono anche contenere i controlli predefiniti del contenuto &.

Pertanto nel 90% delle pagine in cui si desidera il markup predefinito è possibile omettere il contenuto prevalente.

alternativa nel 10% dei casi in cui si desidera qualcosa di diverso puoi fornire markup predominante

Esempio:

<%@ Master Language="C#" %> 
<html> 
<body> 
<asp:ContentPlaceholder id="Headline" runat="Server"> 
    My Default Headline 
</asp:ContentPlaceholder> 
<asp:ContentPlaceholder id="Main" runat="Server" /> 
</body> 
</html> 

sulla tua home page si potrebbe avere una pagina in questo modo:

<%@ Page MasterPageFile="..." %> 
<asp:Content ContentPlaceHolderID="Headline" runat="Server"> 
    My homepage headline 
</asp:Content> 

<asp:Content contentplaceholderid="Main" runat="server"> 
    My homepage main content 
</asp:Content> 

in tutte le altre pagine, sfrutta il "Titolo" predefinito omettendo il tag per il titolo in questo modo:

<%@ Page MasterPageFile="..." %> 
<asp:Content contentplaceholderid="Main" runat="server"> 
    My page main content 
</asp:Content> 
1

Una volta abituati a loro, inizierai a utilizzarli come previsto. Quelle informazioni (come CSS, common js, problemi di posizionamento delle pagine, ecc.) Che sono condivise da un numero sufficiente di pagine per garantire una fonte comune andranno lì, e in seguito sarai felice di essere lì.

Quando crei una pagina che si interrompe da quella, potresti ritrovarti a fare un po 'di aggiustamento al tuo main.master (astrazione delle cose in modo diverso), ma sarai in grado di effettuare la regolazione velocemente e andare avanti.

Se si tratta solo di una pagina unica che infrange le regole, allora è sufficiente dire a quella pagina di ereditare un altro master.

Crea un sito di prova e gioca un po 'con il concetto prima di iniziare a fare affidamento su di esso.

-2

L'idea alla base della pagina master è piacevole (se non banale) ma è inutile perché la loro realizzazione.

  1. pagina maestro non chiama il pagina (tenore), ma il contrario. Quindi, qual è il problema? Semplice, non puoi chiamare pagine diverse ma una singola pagina. Quindi, stai codificando e inserendo tutto il tuo codice nella stessa pagina. È un'assurdità. La pagina master consente diversi blocchi di contenuti, ma tutti puntano alla stessa pagina (quindi, ingombrando il codice).

  2. Non è banale per collegare il pagina master codice e il chiamante Pagina, per esempio, condividono lo stesso tag "forma", ma si deve mettere il tag form nella pagina ed è possibile utilizzare il tag modulo solo una volta. : -?

  3. Variabili/I valori non sono condivisi direttamente, è possibile ma richiede un po 'di "hack" (richiamo di una funzione all'interno del master per esempio)

  4. È necessario prestare attenzione nel ciclo di carico (prima che la pagina Carico).

Pagine Master sono belle, se la tua padrone pagina è statico, altrimenti è il modo migliore per semplice "copiare & incolla" in ogni pagina o per utilizzare i controlli personalizzati, perché pagine master aggiuntivi un nuovo livello di complessità.

Ricordare che l'obiettivo di Pagina master è di risparmiare tempo, se non riesce in questo compito, quindi, è inutile.

my 2 centesimi.

+1

Sei consapevole del fatto che hai effettivamente copiato/incollato la stessa sezione di testo tre volte? –

+0

Amico ... ripulisci il tuo post – Aheho

+0

-1 Non credo che il punto 1 sia corretto, piont 2, non puoi mettere 2 moduli su quale server runat su nessuna pagina asp, indipendentemente dal fatto che tu usi le pagine master, 3. true , la separazione delle preoccupazioni è una buona cosa. 4. molto vero. – Myster

Problemi correlati