Har du försökt sökmotoroptimera en sajt du byggt i ASP.NET? Jag har gjort det, och det är inte så lätt.
En av de finesser i ASP.NET som jag absolut inte skulle klara mig utan, är MasterPages. När du använder MasterPages får du lite problem med MetaDescription och MetaKeywords.
En vanlig lösning är att ha en ContentPlaceHolder i Head, och lägga in meta-taggarna den vägen. I ASP.NET 4.0 kommer du att komma åt dessa, precis som du gör med Title idag. Det tycker jag verkar otroligt smidigt, och därför tänkte jag dela med mig av hur du kan göra precis så redan i version 2.0.
Jag har en basklass som alla mina sidor ärver. Jag tycker att allting blir så mycket enklare då, och den använder jag till detta också. Där har jag följande
private string _keywords;
public string Meta_Keywords
{
get
{
return _keywords;
}
set
{
// strip out any excessive white-space, newlines and linefeeds
_keywords = Regex.Replace(value, "\\s+", " ");
}
}
Detta gör att jag får en egenskap i Page för Meta_Keywords. Jag har motsvarande för Meta_Description. För att sedan ställa in egenskaperna gör jag så här:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFileBaseClass="BasePageClass" CodeFile="Default.aspx.cs" Inherits="Support" Title="<%$ Resources:PageTitle %>" Meta_Keywords="Keyword1, Keyword2" Meta_Description="This is my site" %>
Det går naturligtvis även att komma åt från CodeBehind om man vill det. Detta räcker dock inte riktigt, vi måste också på något sätt peta ut detta i den renderade html-koden. Det gör vii PreRender, så här:
public BasePageClass()
{
PreRender += new EventHandler(BasePage_PreRender);
}
void BasePage_PreRender(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Meta_Keywords))
{
HtmlMeta tag = new HtmlMeta();
tag.Name = "keywords";
tag.Content = Meta_Keywords;
this.Page.Header.Controls.Add(tag);
}
if (!string.IsNullOrEmpty(Meta_Description))
{
HtmlMeta tag = new HtmlMeta();
tag.Name = "description";
tag.Content = Meta_Description;
Header.Controls.Add(tag);
}
}
Det är allt som behövs.
7bac0789-5166-4e3c-b7c9-796db0b48210|0|.0