我想知道的是,是否有一种技术可以将参数注入到渲染中,以便在渲染期间(期间)调用其页面生命周期事件(Page_Init,Page_Load)时HttpContext
可用?UserControl
HttpContext.Current.Server.Execute()
这种技术将允许将数据注入任何 UserControl(例如通过调用远程服务),而无需专门用于动态渲染。它将以与 ASPX 页面上的静态控件相同的方式加载。
从这个基本代码片段开始:
Page page = new Page();
UserControl ctl = (UserControl)page.LoadControl(controlSpec);
page.Controls.Add(ctl);
// want to inject data into the control at this point
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, true);
String renderedContent = writer.ToString();
return renderedContent;
我看过@ScottGu ViewManager示例,其中他向每个成员添加了一个Data 成员,UserControls
并在控件呈现为HTML 之前使用反射将数据源注入该成员。
我还看到了Stefan Sedich对 @ScottGu 示例的看法,他派生了一个泛型ViewManager<Control>
,它允许同样的事情,但避免了反射的需要。
例如,我希望能够在Request
渲染.QueryString
UserControl