ある特定のページのときだけhead内にlinkタグを追加したいと思い調べました。
この方法ならマスターページには本当に共通なものだけを書いて、コンテンツページ側で必要なときに追加することができます。
metaタグを追加
protected void Page_Init(object sender, EventArgs e)
{
HtmlMeta meta = new HtmlMeta();
meta.Attributes.Add("name", "keywords");
meta.Attributes.Add("content", "ASP.NET,C#");
Page.Header.Controls.Add(meta);
}
linkタグを追加
protected void Page_Init(object sender, EventArgs e)
{
HtmlLink link = new HtmlLink();
link.Href = "//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/themes/redmond/jquery-ui.css";
link.Attributes.Add("rel", "stylesheet");
link.Attributes.Add("type", "text/css");
link.Attributes.Add("media", "all");
Page.Header.Controls.Add(link);
}
scriptタグを追加
protected void Page_Init(object sender, EventArgs e)
{
HtmlGenericControl script = new HtmlGenericControl("script");
script.Attributes.Add("src", "//cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js");
script.Attributes.Add("type", "text/javascript");
Page.Header.Controls.Add(script);
}
titleタグを変更
titleタグはhead内に記述しておいて、タイトルを変更したらいいです。
protected void Page_Init(object sender, EventArgs e)
{
Page.Header.Title = "動的タイトル";
}
ScriptManagerにアクセスする
ScriptManagerをマスターページで使用しているとコンテンツページで使用できませんが、ScriptManagerのかわりにScriptManagerProxyを使用することができます。
<asp:ScriptManagerProxy ID="smp" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/myscript.js"/>
</Scripts>
</asp:ScriptManagerProxy>


コメント