我收到上述错误消息。但是,有问题的页面的确确实有一个标签(在设计时)具有runat =“ server”属性,并且控件位于其中。如果我运行该项目并查看源代码,则该属性似乎消失了(不确定那部分是否正常,或者那是什么原因引起的)。
当我尝试运行RenderControl方法时,错误弹出。该页面可以很好地开始加载。有什么想法吗?
<form id="form1" runat="server">
<div id="hiddenMVR" runat="server" style="display:block;">
// lots of other controls in here removed for brevity
</div>
</form>
后面的代码:
StringBuilder stringBuilder = new StringBuilder();
StringWriter stringWriter = new StringWriter(stringBuilder);
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
//error occurs on RenderControl
this.hiddenMVR.RenderControl(htmlTextWriter);
答案 0 :(得分:0)
显然,以下代码解决了该问题,尽管老实说我不确定原因,因为原始错误消息不正确:
public override void VerifyRenderingInServerForm(Control control)
{
/* Confirms that an HtmlForm control is rendered for the specified ASP.NET server
control at run time. Used to avoid issue using RenderControl above */
}
显然,这会覆盖一些我不知道的内置方法,该方法正在执行导致错误的操作。不用代码覆盖它可以防止默认情况下发生的任何事情,从而消除了错误。
在其他一些帖子中提到了此“修复”,但我认为它不适用,因为错误消息与代码不一致。
我没有注意到这样做带来的任何不利问题。