8
votes

Ajouter la balise canonique à ma page pour le référencement par code derrière?

J'utilise ASP.NET avec MasterPages. Ainsi, je ne peux pas simplement placer ce lien dans mes pages qui font référence à mon MasterPage. xxx pré>

Je dois placer ce lien dans ma charge de la page de chacune de mes pages. Comment ferais-je cela via le code? J'utilise vb.net mais c # m'aidera également dans la bonne direction. P>

C'est comme ça que je l'ai fait pour ma balise de description dans mon code derrière. P>

    Dim tag As HtmlMeta = New HtmlMeta()
    tag.Name = "description"
    tag.Content = "Find or rate any company in South Africa for FREE and rate them"
    Header.Controls.Add(tag)


0 commentaires

6 Réponses :


4
votes

Pourquoi ne pas créer votre élément canonique en tant que contrôle du serveur: xxx

puis manipule l'objet canonique dans votre page de page (ou de page maître). Les balises génériques sont traitées comme des instances de htmlgenericcontrol qui permet de définir des attributs arbitraires: xxx


2 commentaires

C'est ce que j'ai fait, je place votre lien dans ma balise d'en-tête Masterpage. Mais puis de ma page normale, votre code ne fonctionne pas. Il ne ramasse pas l'attribut canonique.


Voir la réponse de Danrichardson ( Stackoverflow.com/Questtions/1398821/... ) Pour accéder à un contrôle de page maître de la page.



1
votes

Selon la réponse de Richard, dans votre code de page, vous devrez faire référence à la page principale. Essayez: xxx

ou l'équivalent VB :)


0 commentaires

0
votes

J'ai la configuration suivante.

Créer une classe qui hérite de system.web.ui.page comme une classe de type "basepage". p>

Ajoutez une méthode à celle-ci: p>

public partial class MyPage : BasePage {

  protected void Page_Load(object sender, EventArgs e) {

    // Or however you're generating your canonical urls
    string cannonicalUrl = GetCannonicalUrl();

    AddHeaderLink(cannonicalUrl, "canonical", string.Empty, string.Empty);
  }
}


0 commentaires

16
votes

C'est ce que je devais faire ..................

    Dim seoTag As HtmlLink = New HtmlLink()
    seoTag.Attributes.Add("rel", "canonical")
    seoTag.Href = "http://www.erate.co.za/"
    Header.Controls.Add(seoTag)


0 commentaires

1
votes

essayer d'utiliser: Créez d'abord une classe de base de base comme celle-ci:

<a href="http://www.dowebpage.com">Michele - MMSoftware </a>


0 commentaires

0
votes

Voici ce que j'ai fait: Dans la page Master nommée "MasterPage.master" The The The The The The The The The The The The The The The The Contentplaceholder, comme ceci:

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="forcanonical">
    <link rel="canonical" href="http://theCanonicalUrl.com" />
</asp:Content>


0 commentaires