Asp.net 是否有System.Web.UI.ClientScriptManager方法在<;头>;标签?
我知道在正文中放置Asp.net 是否有System.Web.UI.ClientScriptManager方法在<;头>;标签?,asp.net,javascript,clientscriptmanager,Asp.net,Javascript,Clientscriptmanager,我知道在正文中放置标记是完全可以的,但是为了整洁起见,我想使用System.Web.UI.ClientScriptManager在我的页面的中注册脚本。有没有办法做到这一点 提前感谢。在这种情况下,我通常会在母版页的标签中添加一个ContentPlaceHolder 或者,我使用了一种方法(通常在实用程序类或PageBase类中),将脚本字符串放入列表并存储在ASP.Net上下文中,如下所示: List<string> javaScriptUrls = new
标记是完全可以的,但是为了整洁起见,我想使用System.Web.UI.ClientScriptManager
在我的页面的
中注册脚本。有没有办法做到这一点
提前感谢。在这种情况下,我通常会在母版页的标签中添加一个ContentPlaceHolder 或者,我使用了一种方法(通常在实用程序类或PageBase类中),将脚本字符串放入列表并存储在ASP.Net上下文中,如下所示:
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;
List javaScriptUrls=new List();
url=url.ToLower();
javaScriptUrls=Context.Items[JS_KEY]作为列表;
if(javaScriptUrls==null)
{
javaScriptUrls=新列表();
添加(url);
}
其他的
{
如果(!javaScriptUrls.Contains(url))
添加(url);
}
Context.Items[JS_KEY]=javaScriptUrls;
然后在母版页的prerender上,它从上下文中读取此列表,并在标题中构建标记
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);
}
List\u javaScript=Context.Items[JS\u KEY]作为列表;
foreach(javaScript中的字符串js)
{
HtmlGenericControl脚本=新的HtmlGenericControl();
script.TagName=“script”;
添加(“type”、“text/javascript”);
if(js.StartsWith(“~/”)
Add(“src”,head.ResolveUrl(js));
其他的
添加(“src”,js);
head.Controls.Add(脚本);
AddHeaderLineBreak(head);
}
感谢您的详尽回答。此解决方法意味着我不能使用“IsClientScriptIncludeRegistered”。。。我想您可以继续将URL添加到列表中,然后只注册唯一的条目。正确。注意这一行:if(!javaScriptUrls.Contains(url.ToLower()))javaScriptUrls.Add(url);保持列表中的唯一性