2009-08-19 93 views
0

我在母版页中使用了Substitution控件,并且想要在替换中渲染用户控件内容(与我的网站的登录区域有关) 。 好像我必须有一个请求页面的引用,以便它可以呈现控件。但是我需要在母版页中呈现控件,因为它在我的网站中的多个页面上共享。什么是实现这个目标的指导方针?在母版页代码隐藏中渲染ASP.NET控件

韩国社交协会

+0

我能够加载用户控件,但ASP.NET抱怨,对于状态的信息无效或损坏。 我用这种方式加载了用户控件: Page pageHolder = new Page(); UserControl viewControl =(UserControl)pageHolder.LoadControl(“MyControl.ascx”); pageHolder.Controls.Add(viewControl); StringWriter输出= new StringWriter(); HttpContext.Current.Server.Execute(pageHolder,output,false); return output.ToString(); – gsb 2009-08-19 18:09:37

+0

页面提供后,不会自动呈现页面渲染吗?我不确定你为什么首先渲染它。另外,如果你在用户控件中有表单控件,但是它周围也没有'

',它会抱怨无效状态。 – 2009-08-19 20:29:19

回答

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 2009-08-19 18:04:34