上記コードに加えusing にSystem.Web.UI.HtmlControls を記述する必要があります。
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);
}
次のコードで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" />