動的に<meta>タグを追加する (プログラムコードから<meta>タグを追加) - ASP.NET

ASP.NETでプログラムから動的に<meta>タグを追加する方法を紹介します。

概要

プログラムから動的に<meta>タグを追加する場合は、HtmlMetaクラスのインスタンスを作成しPage.Header.Controlsに追加することで実現できます。

コード例

WebフォームやマスターページのPage_Loadイベントにコードを追加します。下記の例ではMetaタグのhttp-equivのContent-Languageを動的に追加しています。
protected void Page_Load(object sender, EventArgs e)
{
  lang = GetLang(); //何らかの関数
    //関数がない場合は lang = "ja" と記述すれば動作します。

  HtmlMeta meta = new HtmlMeta();
  meta.Attributes.Add("http-equiv", "Content-Language");
  meta.Attributes.Add("content", lang);
  Page.Header.Controls.Add(meta);
}
注意
上記コードに加えusing にSystem.Web.UI.HtmlControls を記述する必要があります。

解説

次のコードでMetaタグを示すクラスを新規作成します。
HtmlMeta meta = new HtmlMeta();

作成したMetaタグに属性を追加します。以下のコードにより <meta httpeqiv="Content-Language"> のメタタグ要素が追加されます。
meta.Attributes.Add("http-equiv", "Content-Language");
Metaタグに属性を追加します。以下のコードにより、<meta httpeqiv="Content-Language" content="(lang変数の内容)"> のメタタグ要素が追加されます。
meta.Attributes.Add("content", lang);

実行結果

lang="ja"であった場合には、headタグ内に以下のMetaタグが生成されます。
<meta http-equiv="Content-Language" content="ja" />

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-08-24
作成日: 2011-01-30
iPentec all rights reserverd.