Pagina.Title vs Title tag asp.net

Sto usando asp.net. Ho notato che si può configurare titolo della pagina (statico e dinamico sia) in due modi:

  1. Abbiamo un Title attributo nella direttiva della pagina:

      <%@ Page Language="C#" Inherits="_Default"  Title="My Title" ......%>
  2. Abbiamo anche <title>tag nella pagina:

    <title runat="server" id="MyTitle"> My Title</title>

Sia possibile accedere a file di code-behind:

    MyTitle.Text = "Title from Code behind";
    Page.Title = "Page Title from CS";

E ho trovato la pagina direttiva sostituisce il titolo html. Quindi Quale dovrei utilizzare e perché ?

InformationsquelleAutor Arshad | 2013-10-07



3 Replies
  1. 9

    La più grande differenza è che con MyTitle.Text si hanno per decorare il Titolo di elemento con un id E runat attributi, e ricordare il nome in modo da poter fare riferimento a esso. Anche l’accesso a questo valore non è facile da bambino pagine quando si utilizza Masterpage per esempio..

    D’altra parte, Page.Title è comune a ogni Pagina, quindi è più universale, a mio parere. Ogni nuovo sviluppatore avrai la possibilità di lavorare con non devi imparare nulla di nuovo, basta usare la Pagina.Titolo formato..

    Quindi il mio voto sarebbe andato al “tradizionale” Page.Title

    A seconda di come si desidera utilizzare, bastone con esso, in modo da non mescolare i vari modi di definire il titolo. In questo modo non dovrà preoccuparsi di quale evento si verifica per primo o del collega di sovrascrivere i valori.

    • Questo sito non si parla di “Voto” (“il Mio voto” come dici tu). si dovrebbe fornire una risposta sulla base di fatti/fonti/codice/docs.
    • sapete che non c’è nessuna risposta definitiva a questa domanda. Entrambe le opzioni sono ok. Ho descritto entrambe le varianti detto, quello che preferisco. Cosa c’è di male in questo? Volete davvero giocare con le parole?
    • E ho trovato la pagina direttiva sostituisce il titolo html.…. La risposta deve spiegare perché. ( che è quello che l’op ha chiesto, in realtà)
    • Caro Sir. Forse si dovrebbe ri-leggere la domanda. È abbastanza chiaro: So Which one should we use and why ? ho detto che uno e ho detto perché. Se avete problemi con questo, sentitevi liberi di downvote, di relazione, di qualunque cosa. O forse fornire una risposta da te così ci fai vedere come sbagliata.
    • Io non downvote solo come quella.Anche io non ho una risposta a questa domanda. ma di certo non dirò : “il mio voto” (a meno che non ho una prova o qualcosa sulla base della mia risposta.). se ti aspettare abbastanza , qualcuno verrà con un “codice sorgente” di risposta ( via riflettore o qualcosa del genere).
    • Se vuoi parlare, abbiamo una chat e molti individui desiderosi di sapere qui. Sentitevi liberi di usarlo se siete annoiati, perché questo non conduce da nessuna parte. Nulla di costruttivo è venuta da voi e né siete disposti a leggere correttamente.

  2. 11

    Risposta breve : ( dipende dalle vostre esigenze). mi spiego meglio.

    • dipende se il tuo titolo dovrebbe cambiare a runtime.

    Risposta lunga :

    Qui è la mia osservazione(con un piccolo test) :

    Ho impostato title al Page directive :

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="Exampales_test" Title="ppppppppp" %>

    Ho anche impostato tramite html :

    <head runat="server" ID="hhh">
         ...
        <title runat="server">fffffffff</title>
    </head>

    Ho questo codice di prova :

     protected override void OnPreInit(EventArgs e)
        {
         //<-----  breakpoint here (A)
            base.OnPreInit(e);
         //<-----  breakpoint here (B)
        }
    
    
    protected void Page_Load(object sender, EventArgs e)
    { //<-----  breakpoint here (C)
        this.Title = "cccccccc";
    }

    Visual :

    Pagina.Title vs Title tag asp.net

    Ora vediamo :

    Quando premo Run :

    Pagina non hanno il titolo html valore (ffffff)

    Pagina.Title vs Title tag asp.net

    Anche al fine di PreInit

    Pagina.Title vs Title tag asp.net

    Indagare il OnInit mostra ha già cambiato (in modo {se volete sapere esattamente in quale fase – questo può essere fatto}) per ppppppppp

    Pagina.Title vs Title tag asp.net

    E, naturalmente, l’ultimo evento ( tra cosa di cui abbiamo parlato) è il page_load : che non cambia il valore :

    Pagina.Title vs Title tag asp.net

    E il valore è :

    Pagina.Title vs Title tag asp.net

    Quindi, quale scegliere ?

    Se il tuo codice è cambiare il Title dinamicamente (voglio dire, a runtime), non utilizzare il markup html affatto, né la direttiva di pagina.

    ad esempio, se il codice è (per esempio) ha ASCX e che ACSX dovrebbe cambiare il titolo , quindi basta usare il codice ( non direttiva, né il linguaggio di markup html).

    Come avrete notato già il valore che vince è quella che si verifica per ultimo(timeline)

    Si inizia con il markup html di valore , ma poi il codice lato server, comincia ad attivare e modifica i valori.

    • Non importa “, che si verifica più fine”, ma solo che uno è effettivamente utilizzare. Questo è davvero un imperfetto parere. Tutto quello che hai mostrato è la sequenza di elaborazione di un asp.net pagina senza un reale valore (a meno che non hai a che fare con uno schizofrenico che utilizza tutti i metodi in una sola app). Un unico modo di impostare il titolo annulla la tua “conclusione”…
    • è la stessa cosa. se si utilizza un solo posto , quindi non c’è il codice che poi ignorare i valori. il mio test mostra come il valore di modifiche al ciclo di vita della pagina dall’inizio. ora l’OP dovrebbe sapere che se ha bisogno di titolo dinamico , quindi dovrebbe essere impostato tramite il codice in una fase successiva e non utilizzando il markup HTML, i tag title.
  3. 0

    Qui è un buon articolo sulle differenze. Che in fondo fanno la stessa cosa. È solo QUELLO che si vuole fare che conta.

    Mentre il <title> può essere impostato staticamente in un ASP.NET pagina web, in
    molti scenari il titolo dipende dai dati visualizzati nel
    pagina. Per esempio, un sito web potrebbe avere un
    ShowProduct.aspx?ID=productID pagina. Piuttosto che statico
    <title>, il valore della <title> ideale sarebbe il nome del
    prodotto visualizzato (che è, un prodotto il cui ProductID eguagliato il
    idprodotto valore passato tramite querystring). Purtroppo, in
    ASP.NET versione 1.x, l’impostazione di qualsiasi HTML elementi di metadati (come
    <title>) è necessario che lo sviluppatore di aggiungere un vero e proprio controllo in
    posto giusto nel markup HTML e quindi impostare il valore
    a livello di programmazione nel ASP.NET pagina code-behind della classe.

    Copiato da qui
    http://www.4guysfromrolla.com/articles/051006-1.aspx

    • Modificato in modo che l’angolo tra parentesi <> erano visibili nel preventivo – in caso contrario è stato un po ‘ difficile da leggere. Credo di avere tutti loro.
    • un futile motivo. A quanto pare le altre risposte sono più apprezzati.

Lascia un commento