у вас есть проблемы с получением вашего; 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
Вот что мне нужно было сделать ..................
Dim seoTag As HtmlLink = New HtmlLink()
seoTag.Attributes.Add("rel", "canonical")
seoTag.Href = "http://www.erate.co.za/"
Header.Controls.Add(seoTag)
Дополнительная информация Здесь
Вот то, что я сделал: На основной странице под названием тег головы "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>
Согласно ответу Ричарда, на стороне кода страницы вам нужно будет ссылаться на главную страницу. Попробуйте:
((HtmlLink)this.Page.Master.FindControl("canonical")).Href = "whatever";
или эквивалент VB :)
Почему бы не создать свой канонический элемент в качестве серверного элемента управления:
<link rel="canonical" href="" runat="server" id="canonical"/>
Затем манипулируйте каноническим объектом в классе своей страницы (или главной страницы). Общие теги обрабатываются как экземпляры HtmlGenericControl
, который позволяет устанавливать произвольные атрибуты:
canonical.Attributes["href"] = whatever;
У меня настроены следующие параметры.
Создайте класс, который наследуется от 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);
}
}
Попробуйте использовать: Сначала создайте класс 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>