CompositeC1のユーザーコントロール内からカスタム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.NETWebサイトで機能します。RegisterClientScriptIncludeはここには示されていませんが、まったく同じ問題です。
回避策として、ユーザーコントロールとマスターページのマークアップにJavascriptブロックとスクリプトリンクを直接追加することもできますが、必要に応じて登録することで「動的」なソリューションを好みます。
この問題がCompositeC1フレームワークの一般的な問題であるかどうか、誰か知っていますか?