C# 获取错误';必须放置在runat=server';的表单标记中;,但事实确实如此

C# 获取错误';必须放置在runat=server';的表单标记中;,但事实确实如此,c#,html,asp.net,webforms,runatserver,C#,Html,Asp.net,Webforms,Runatserver,我收到了上面的错误消息。但是,所讨论的页面确实有一个带有runat=“server”属性的标记(在设计时),并且控件就在其中。如果我运行项目并查看源代码,则该属性似乎消失了(不确定该部分是否正常,或者如果不正常,是什么原因导致) 当我尝试运行RenderControl方法时,错误弹出。页面开始时加载良好。有什么想法吗 <form id="form1" runat="server"> <div id="hiddenMVR" runat="server" style="displa

我收到了上面的错误消息。但是,所讨论的页面确实有一个带有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>

显然,下面的代码解决了这个问题,尽管老实说,我不知道为什么,因为最初的错误消息并不准确:

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 */ 
}
显然,这会覆盖一些我不知道的内置方法,这些方法会导致错误。不使用代码覆盖它可以防止默认情况下发生的任何事情,从而消除错误

这个“修复”在其他一些帖子中提到过,但我认为它不适用,因为错误消息与代码不一致


我没有注意到这样做会产生任何有害的问题。

如果没有看到您的代码,我不知道您希望我们做什么。我不确定这段代码到底有什么用,因为它只显示了我说过的话。有一个表单标签,控件在里面。但这就是安全性,因为上下文很重要,代码描述常常不准确,而且非常不完整。您在哪个生命周期事件中运行此代码?代码会显示这一点。您需要为我们提供重现该问题所需的最少代码。@StarfleetSecurity能否为我们提供更完整的代码示例?从提供的代码中不清楚问题可能是什么。理想情况下,我们需要一个。
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 */ 
}