2009-08-19 14 views
0

私はマスターページで置換コントロールを使用しています。置換に、ユーザーコントロールのコンテンツ(自分のウェブサイトのログインエリアに関連するもの)をレンダリングしたい。 コントロールをレンダリングできるように、要求されたページの参照が必要なようです。しかし、マスターページ自体でコントロールをレンダリングする必要があります。これは、自分のWebサイトの複数のページに共有されているためです。それを達成するためのガイドラインは何ですか?マスターページのコードビハインドでASP.NETコントロールをレンダリングする

TKS

+0

私はユーザーコントロールをロードすることができましたが、ASP.NET状態についての情報ことを不平を言っています無効または破損しています。 私はこの方法でユーザーコントロールをロードしました: ページpageHolder =新しいページ(); UserControl viewControl =(UserControl)pageHolder.LoadControl( "MyControl.ascx"); pageHolder.Controls.Add(viewControl); StringWriter出力=新しいStringWriter(); HttpContext.Current.Server.Execute(pageHolder、output、false); return output.ToString(); – gsb

+0

ページが提供されたときにpageHolderは自動的にレンダリングされませんか?なぜ自分でそれを最初にレンダリングするのか分かりません。また、あなたのユーザーコントロールにフォームコントロールがあり、その周囲に '

'もない場合は、無効な状態について文句を言います。 –

答えて

0

つまり、あなたのマスターページのコードビハインドからユーザーコントロールをレンダリングし、マスターページにもあります置換に追加したいですか?マスターを使用しているページへの参照が必要なのはなぜですか?

あなたの使用してVBと仮定すると、私はあなたの質問を理解していることを、あなたのマスターページのコードビハインドでこれを試してみてください。

Dim someControl As MyControl = CType((New Page()).LoadControl("~/Path/To/MyControl.ascx"), MyControl) 
mySubstitution.Controls.Add(someControl) 
+0

私が参照している置換コントロールは、出力キャッシュページに使用されるhttp://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.substitution.aspxです。 (: – gsb

関連する問題