2009-05-05 4 views
2

Je suis débutant dans .NET. L'une de mes premières tâches consiste à modifier dynamiquement les balises META pour les pages générées dynamiquement. Donc, je suis venu avec cela, mais je ne suis pas trop sûr de ce qui est considéré comme la "bonne" façon de le faire dans. NET.Est-ce correct dans .NET?

<head> 
<title><%= title %></title> 
<meta name="description" content="<%= MetaDescription %>" /> 
... 
</head> 

Cette fonction vit dans mon masterpage codebehind et je mis un titre par défaut, etc à la page init (non illustré ci-dessous)

Protected Title As String = "" 

Public Sub ChangeTitle(ByVal title As String) 
    Title = title 
End Sub 

J'ai aussi appelé cette fonction dans toutes les pages voir la fiche produit pour régler la titre dynamique approprié.

Est-ce que cela est acceptable dans NET? Est-ce bon ou pas hackish ou diriez-vous « si cela fonctionne, fonctionne?


J'ai essayé d'ajouter runat = » server » à la balise de tête, d'utiliser Page.title mais une fois que cela a ajouté dans, cette ligne <meta name="description" content="<%= MetaDescription %>" /> se décode à

<meta name="description" content="&lt;%= MetaDescription %>" /> 

et mon code ci-dessus ne fonctionne pas pour changer la meta description.

Répondre

4

Si l'en-tête est marqué Runat = « serveur », puis la propriété Page.Title du page fera automatiquement le changement de titre pour vous

Le deuxième pour la balise META Je fais la même chose, parce que ça marche.

+0

J'ai essayé dans un premier temps - ajouter runat = « server » à la balise meta, mais une fois que a été ajouté, cette ligne est décodée. – Dhana

2

Il y a déjà une propriété pour cela: Page.Title

2

Après avoir ajouté runat="server" à l'étiquette de tête de sorte que vous pouvez utiliser la propriété Title, vous pouvez utiliser quelque chose comme ceci pour ajouter des balises meta à la tête:

public static void AddMeta(string name, string content) { 
    Page page = (Page)HttpContext.Current.Handler; 
    HtmlMeta meta = new HtmlMeta(); 
    meta.Name = name; 
    meta.Content = content; 
    page.Header.Controls.Add(meta); 
} 
0

vous pouvez utiliser cet exemple:

page.title = "your title here" 

page.metadescription = "your description here" 
Questions connexes