我尝试从 Composite C1 的用户控件中添加自定义 javascript 块。用户控件集成在嵌套母版页中(称为 Frontpage.master - 作为来自 Composite C1 的基础起始站点“ASP.NET 母版页”已被采用,我想尽可能地坚持使用它)。
为了分析问题,在用户控件中使用了非常简单的代码:
string _jsScriptBlock = "alert('here');";
protected void Page_Load(object sender, EventArgs e)
{
if (!this.Page.IsPostBack)
{
ClientScriptManager scriptMgr = this.Page.ClientScript;
if (!scriptMgr.IsClientScriptBlockRegistered(this.GetType(), "jsScriptBlock"))
{
scriptMgr.RegisterClientScriptBlock(this.GetType(), "jsScriptBlock", _jsScriptBlock, true);
}
}
}
相同的代码在另一个测试 ASP.NET 网站中工作,该网站在嵌套母版页中集成了用户控件。RegisterClientScriptInclude 在这里没有显示,但它是完全相同的问题。
作为一种解决方法,我可以直接在用户控件和母版页的标记中添加 Javascript 块和脚本链接,但我更喜欢“动态”解决方案,必要时通过注册。
有谁知道,如果这个问题是 Composite C1 框架的普遍问题?