[C#] 動的にヘッダに<link>タグを追加する

このページのタグ:[C#] [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 を記述する必要があります。

解説


  HtmlLink hl = new HtmlLink();
にてLinkタグを表すクラスのインスタンスを作成します。


  hl.Href = StandardURL;
Linkタグのhrefの値を設定します。今回は先に別の関数で取得した値を代入しています。
上記コードにより
<link href="(StandardURL変数の内容)">
となります。


  hl.Attributes.Add("rel", "canonical");
Linkタグ内の属性を設定します。上記コードにより"rel"属性に"canonical"の値を設定します。
上記コードにより
<link href="(StandardURL変数の内容)" rel="canonical">
となります。

実行結果

StandardURL="http://www.ipentec.com" であった場合には、headタグ内に以下のLinkタグが生成されます。

<link href="http://www.ipentec.com" rel="canonical" />
プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)