lundi 4 août 2014

Comment remplacer les balises META TAG d'une MasterPage en ASP.NET C# ?

Ce qui suit peut être utile pour le partage d'une page Web dans Facebook, en effet ce dernier récupère la balise Description de la page à partager pour remplir le résumé.

Depuis une page Web le lien "https://www.facebook.com/sharer/sharer.php?u=" suivi de l'URL de la page affiche le résumé de partage ci-dessus.


Dans la MasterPage.master, écrire :

<head runat="server">
.....
<meta name="Description" id="PageDescription" content="Description de la page par défaut" runat="server" />
<meta name="Keywords" id="PageKeywords" content="Mots clés par défaut" runat="server" />
....
</head>

Dans la MasterPage.master.cs, écrire :

....
public partial class MasterPage : System.Web.UI.MasterPage
{
    public string MetaDescription
    {
        get
        {
            return PageDescription.Content;
        }
        set
        {
            PageDescription.Content = value;
        }
    }
    public string MetaKeywords
    {
        get
        {
            return PageKeywords.Content;
        }
        set
        {
            PageKeywords.Content = value;
        }
    }
    ....
    protected void Page_Load(object sender, EventArgs e)
   {
      ....

Dans la Page.aspx faisant référence à la masterPage :

En première ligne vérifier la présence d'une ligne similaire à celle-ci :
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Page.aspx.cs" Inherits="Page" %> 

Dans la Page.aspx.cs, écrire :

....
protected void Page_Load(object sender, EventArgs e)
{
    ....
    Page.Title="Titre de la page en remplacement de celui de la MasterPage";
    MasterPage MyMaster = (MasterPage)this.Master;
    MyMaster.MetaDescription = "Description de la page en remplacement de celle de la MasterPage";
    MyMaster.MetaKeywords = "Mots clés de la page en remplacement de ceux de la MasterPage";
    .....
}