動的にヘッダに<link>タグを追加する - ASP.NET
ASP.NETでプログラムから動的にヘッダに<link>タグを追加する方法を紹介します。
概要
プログラムコードで動的に<link>タグを追加するには、HtmlLinkクラスのインスタンスを作成し、Page.Header.Controlsに追加します。
コード例
WebフォームやマスターページのPage_Loadイベントにコードを追加します。下記の例ではLinkタグのrelのcanonicalを動的に追加しています。
protected void Page_Load(object sender, EventArgs e)
{
StandardURL = GetStandardURL(); //何らかの関数
//関数がない場合は StandardURL = "http://www.ipentec.com" と記述すれば動作します。
HtmlLink hl = new HtmlLink();
hl.Href = StandardURL;
hl.Attributes.Add("rel", "canonical");
Page.Header.Controls.Add(hl);
}
注意
上記コードに加えusing にSystem.Web.UI.HtmlControls を記述する必要があります。
解説
Linkタグを表すクラスのインスタンスを作成します。
HtmlLink hl = new HtmlLink();
Linkタグのhrefの値を設定します。今回は先に別の関数で取得した値を代入しています。
以下のコードにより
<link href="(StandardURL変数の内容)">
のタグが作成されます。
hl.Href = StandardURL;
Linkタグ内の属性を設定します。上記コードにより"rel"属性に"canonical"の値を設定します。
以下のコードにより
<link href="(StandardURL変数の内容)" rel="canonical">
が追加されます。
hl.Attributes.Add("rel", "canonical");
実行結果
StandardURL="http://www.ipentec.com"
であった場合には、headタグ内に以下のLinkタグが生成されます。
<link href="http://www.ipentec.com" rel="canonical" />
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用