web-dev-qa-db-fra.com

Comment ajouter une balise META à la page de contenu ASP.Net

J'ai plusieurs pages de contenu accrochées à une page maître. Je dois ajouter une balise Meta d'actualisation à l'une des pages de contenu, mais je ne vois pas où je peux le faire.

Toute aide serait très appréciée.

23
doogdeb

Je n'ai pas essayé cela avec un rafraîchissement, mais en général, vous pouvez ajouter une balise META comme celle-ci:

   var keywords = new HtmlMeta { Name = "keywords", Content = "one,two,three" };
                Header.Controls.Add(keywords);

mise à jour: c'est possible de cette façon. Vérifiez Rick Strahl http://www.west-wind.com/weblog/posts/2006/Aug/04/No-more-Meta-Refresh-Tags

21
Pleun

Cette page explique la nouvelle fonctionnalité: ASP.Net 4 ajoute 2 nouvelles propriétés liées à la balise Meta à la page. Ils peuvent être utilisés pour définir des balises META pour les mots clés et la description.

Vous pouvez les définir dans le code derrière:

Page.MetaKeywords = "keyword1, keyword2, keyword3";
Page.MetaDescription = "Example of new meta tag support in ASP.Net 4";

Vous pouvez également définir dans la directive @Page:

<%@ Page Language="C#" AutoEventWireup="true"
MetaKeywords="keyword1, keyword2, keyword3"
MetaDescription="Example of new meta tag support in ASP.Net 4"
CodeFile="Default.aspx.cs" Inherits="_Default" %>

La sortie de l'une de ces méthodes rend le code HTML similaire au suivant:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>
        ASP.NET 4 Meta Tag Support
    </title>
    <meta name="description" content="Example of new meta tag support in ASP.Net 4" />
    <meta name="keywords" content="keyword1, keyword2, keyword3" />
</head>
<body>
</body>
</html>
16
DOK

ajouter le code ci-dessous dans la page du concepteur

    <meta id="metaDescription" runat="server" name="Description" />

Ajoutez maintenant le code ci-dessous à votre page .cs

    Page.MetaKeywords = "keyword1, keyword2, keyword3";
    Page.MetaDescription = "Example of new meta tag";
4
Kisan Patel
protected void Page_Load(object sender, EventArgs e)
{
  Page.Title          = "Title of page";
  HtmlMeta tag        = new HtmlMeta();
  tag.Name            = "description";
  tag.Content         = "description of page";
  Header.Controls.Add(tag);
  HtmlMeta tagKeyword = new HtmlMeta();
  tagKeyword.Name     = "keywords";
  tagKeyword.Content  = "keywords of page";
  Header.Controls.Add(tagKeyword );
}

( RL source )

4
Rohit

Vous pouvez ajouter un espace réservé au contenu sur la page maître dans la section head du html. Vous pouvez ensuite ajouter des éléments à cette section de contenu dans votre page de contenu spécifique et ils seront exportés vers l'en-tête de la page.

3
Richard Forrest

Une façon que j'ai trouvé pour faire cela (que je n'ai pas vu répertorié ici) était d'avoir un littéral et de le remplir avec les types de balises META que vous souhaitez. Dans mon cas, je devais l'utiliser sans page maître, pour que Facebook reconnaisse une image miniature, un titre et une description:

<head runat="server">
    <asp:Literal runat="server" ID="litMeta" />
...
</head>

CodeBehind:

var img = "<meta property=\"og:image\" content=\"thumbnail.jpg\" />";
var title = "<meta property=\"og:title\" content=\"Title\" />";
var desc = "<meta property=\"og:description\" content=\"Description\" />";
litMeta.Text = img + title + desc;
2
DLeh