動的にヘッダに<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を愛用
掲載日: 2014-02-19
iPentec all rights reserverd.