Добавление КАНОНИЧЕСКОГО тега к моей странице для SEO через код позади?

у вас есть проблемы с получением вашего; set check it строка за строкой выглядит, например, так:

{
        get
        {
            return EnumHelper.GetEnumDescription<ErrorCode((ErrorCode)ErrorCode);
        }
} 
public Guid Id { get; set; }
public string OAddress { get; set; }
public string DAddress { get; set; } 

Получить перечисление для 3 и 4

8
задан Juergen 14 April 2015 в 16:06
поделиться

6 ответов

Вот что мне нужно было сделать ..................

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

Дополнительная информация Здесь

15
ответ дан 5 December 2019 в 07:59
поделиться

Вот то, что я сделал: На основной странице под названием тег головы "Masterpage.master" я добавил contentPlaceHolder как это:

<asp:ContentPlaceHolder ID="forcanonical" runat="server">
</asp:ContentPlaceHolder>

Затем на каждой дочерней aspx странице страницы (не код позади), я добавил следующее:

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="forcanonical">
    <link rel="canonical" href="http://theCanonicalUrl.com" />
</asp:Content>
0
ответ дан 5 December 2019 в 07:59
поделиться

Согласно ответу Ричарда, на стороне кода страницы вам нужно будет ссылаться на главную страницу. Попробуйте:

((HtmlLink)this.Page.Master.FindControl("canonical")).Href = "whatever";

или эквивалент VB :)

1
ответ дан 5 December 2019 в 07:59
поделиться

Почему бы не создать свой канонический элемент в качестве серверного элемента управления:

<link rel="canonical" href="" runat="server" id="canonical"/>

Затем манипулируйте каноническим объектом в классе своей страницы (или главной страницы). Общие теги обрабатываются как экземпляры HtmlGenericControl , который позволяет устанавливать произвольные атрибуты:

canonical.Attributes["href"] = whatever;
4
ответ дан 5 December 2019 в 07:59
поделиться

У меня настроены следующие параметры.

Создайте класс, который наследуется от System.Web.UI.Page как «BasePage» type class.

Добавьте к нему метод:

public class BasePage: System.Web.UI.Page {

  // I've tended to create overloads of this that take just an href and type 
  // for example that allows me to use this to add CSS to a page dynamically
  public void AddHeaderLink(string href, 
                            string rel, 
                            string type, 
                            string media) {
    HtmlLink link = new HtmlLink();
    link.Href = href;

    // As I'm working with XHTML, I want to ensure all attributes are lowercase
    // Also, you could replace the length checks with string.IsNullOrEmpty if 
    // you prefer.
    if (0 != type.Length){
      link.Attributes.Add(HtmlTextWriterAttribute.Type.ToString().ToLower(),
                          type);
    }

    if (0 != rel.Length){
      link.Attributes.Add(HtmlTextWriterAttribute.Rel.ToString().ToLower(),
                          rel);
    }

    if (0 != media.Length){
      link.Attributes.Add("media", media);
    }

    Page.Header.Controls.Add(link);
  }
}

Затем вы можете создать свои страницы .aspx, унаследованные от базового класса, и затем вызвать AddHeaderLink для этого:

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
ответ дан 5 December 2019 в 07:59
поделиться

Попробуйте использовать: Сначала создайте класс BasePage вот так:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;

namespace MMSoftware.TheMMSoft.UI
{
    public class BasePage : System.Web.UI.Page
    {
        private string _canonical;
        // Constructor
        public BasePage()
        {
            Init += new EventHandler(BasePage_Init);
        }

        // Whenever a page that uses this base class is initialized
        // add link canonical if available
        void BasePage_Init(object sender, EventArgs e)
        {             
            if (!String.IsNullOrEmpty(Link_Canonical))
            {
                HtmlLink link = new HtmlLink();
                link.Href = Link_Canonical;
                link.Attributes.Add(HtmlTextWriterAttribute.Rel.ToString().ToLower(), "canonical");
                link.Attributes.Add(HtmlTextWriterAttribute.Type.ToString().ToLower(), "");
                link.Attributes.Add("media", "");
                Header.Controls.Add(link);
            }
        }

        /// <summary>
        /// Gets or sets the Link Canonical tag for the page
        /// </summary>
        public string Link_Canonical
        {
            get
            {
                return _canonical;
            }
            set
            {
                _canonical = value;
            }
        }                   
    }
}

Затем создайте свои .aspx страницы, которые наследуются от базового класса вот так:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : MMSoftware.TheMMSoft.UI.BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

Последний шаг:

<%@ Page Title=""
         Language="C#"
         MasterPageFile="~/design/MasterPage.master"
         AutoEventWireup="true"
         CodeFile="Default.aspx.cs"
         Inherits="_Default" 
         CodeFileBaseClass="MMSoftware.TheMMSoft.UI.BasePage"
         Link_Canonical="http://yourCanonicalUrl/" 
%>

Не забудьте добавить в C:\Program Files\Microsoft Visual Studio 9.0\Common7\Packages\schemas\html\page_directives. xsd атрибут:

<xsd:attribute name="Link_Canonical" vs:nonfilterable="true" /> 

в разделе complexType

<a href="http://www.dowebpage.com">Michele - MMSoftware </a>
1
ответ дан 5 December 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: