• User

    [ASP.NET] Gestione Meta TAG

    Qualcuno sa come gestire dinamicamente i tag meta dentro la la "head" di una pagina aspx?
    Sono riuscito a trovare il modo di modificare il titolo della pagina attraverso

    Page.Header.Title = nomepagina
    

    Vorrei fare la stessa cosa per le meta description, keywords ecc.
    Sto utilizzando vb.net

    Grazie


  • User

    **Ho risolto in 1 altro modo più barbaro!!!:( **

    • Variabili pubbliche e renderer nel tag meta con un bel <%=

    Lo so fa schifo ma da quello che ho letto si evince solo questo:
    In teoria la classe Page.header dovrebbe avere un elemento Metadata
    In pratica se lo aggiungo mi dice che Metadata non fa parte di System.Web.UI.HTMLControls

    Vabbè, visto che non sono capace mi arrangio così.


  • User Attivo

    Io preferisco mettere un literal tra i tag.
    A quel punto potrai modificarlo in qualsiasi momento da controlli ascx caricati all'interno della master page facendo un findcontrol.
    Per intenderci
    [html]
    <title><asp:Literal id="lt_page_content_title" runat="server" EnableViewState="FALSE"/></title> [/html]

    Poi da qualsiasi pagina puoi settarlo così:

    Dim lt_page_content_title As Literal = Page.FindControl("lt_page_content_title")
    lt_page_content_title.Text="Quello che voglio"
    

    Per la description e gli altri meta potresti fare altri literal
    [HTML]
    <asp:Literal id="lt_description" runat="server" EnableViewState="FALSE"/>[/HTML]

    Poi imposti la description dinamica così:

    Dim lt_description As Literal = Page.FindControl("lt_description")
     lt_description.Text="<meta name=""Description"" content=""Quello che voglio""/>"
    

  • User

    thanxxx,
    adesso provo.

    Non sapevo dell'esistenza del Literal. :bho:
    Ho letto che sono come label ma non formattabili. Giusto?
    Se fosse così mi saranno utili in futuro.

    Bye


  • User

    iesssssssssssssssss 😄

    grazie


  • Moderatore

    volendo puoi fare anche così:

    
    
    Dim objMeta As New HtmlMeta
    
    objMeta.Name = "description"
    objMeta.Content = "descrizione test"
    
    
    'Me.Header.Controls.Add(objMeta)
    Me.Header.Controls.AddAt(1, objMeta)
    '(la differenza sta che con  addat decidi anche l'ordine in cui mettere il testo, con add no)
    
    

    ovviamente puoi usare questo metodo per aggiungere tutti i meta di questo mondo 😉

    Ciao:ciauz:


  • User Attivo

    azz HtmlMeta non lo conoscevo. E' pur vero che è quasi impossibile conoscere tutti gli oggetti.
    Sarebbe meglio usare questo htmlmeta che dovrebbe essere dedicato allo scopo.
    Thx per l'alternativa lego 🙂