本文にタグを入れるのは厳密には問題ないことはわかっていますが、見栄えを良くするために、自分のページの にスクリプトを登録する<script>
ために使用したいと思います。これを達成する方法はありますか? System.Web.UI.ClientScriptManager
<head>
前もって感謝します。
本文にタグを入れるのは厳密には問題ないことはわかっていますが、見栄えを良くするために、自分のページの にスクリプトを登録する<script>
ために使用したいと思います。これを達成する方法はありますか? System.Web.UI.ClientScriptManager
<head>
前もって感謝します。
このような場合、通常、マスター ページのタグに ContentPlaceHolder を追加します。
別の方法として、スクリプト文字列をリストに入れ、次のように ASP.Net コンテキストに格納するメソッド (通常はユーティリティ クラスまたは PageBase クラス) を使用しました。
List<string> javaScriptUrls = new List<string>();
url = url.ToLower();
javaScriptUrls = Context.Items[JS_KEY] as List<string>;
if (javaScriptUrls == null)
{
javaScriptUrls = new List<string>();
javaScriptUrls.Add(url);
}
else
{
if (!javaScriptUrls.Contains(url))
javaScriptUrls.Add(url);
}
Context.Items[JS_KEY] = javaScriptUrls;
次に、MasterPage の OnPreRender で、この List を Context から読み取り、ヘッダーにタグを作成します。
List<string> _javaScript = Context.Items[JS_KEY] as List<string>;
foreach (string js in _javaScript)
{
HtmlGenericControl script = new HtmlGenericControl();
script.TagName = "script";
script.Attributes.Add("type", "text/javascript");
if (js.StartsWith("~/"))
script.Attributes.Add("src", head.ResolveUrl(js));
else
script.Attributes.Add("src", js);
head.Controls.Add(script);
AddHeaderLineBreak(head);
}