HtmlTextWriter中的RenderControl - InvalidOperationException

时间:2013-03-18 15:52:11

标签: c# asp.net

我想渲染一个Control对象,它只是在用户发送回发请求时动态创建的。为此,我使用以下代码:

StringBuilder sb = new StringBuilder();
HtmlTextWriter ht = new HtmlTextWriter(new StringWriter(sb));
Rating r = new Rating("r", 5, 3, No, Big);
r.RenderControl(ht);
不幸的是,

在最后一行产生InvalidOperationException并出现以下错误:

  

页面不能为空。确保在ASP.NET请求的上下文中执行此操作。

我可能误解了我应该使用这种RenderControl方法的方式,我希望你可以帮我解决我的问题。

谢谢你, 大卫

1 个答案:

答案 0 :(得分:0)

在尝试渲染之前,您似乎没有将新的评级控件附加到您的Page控件。

在MSDN docs for RenderControl中,调用的内部将寻找封闭的页面,并根据Page对象的设置执行一些活动。

您可以在页面中添加占位符,然后在尝试渲染之前插入Rating控件。