繁体   English   中英

'TextBox' 类型的控件 'ctl00_TextBox1' 必须放置在带有 runat=server 的表单标签内

[英]Control 'ctl00_TextBox1' of type 'TextBox' must be placed inside a form tag with runat=server

当添加一个在服务器上运行的表单时,将有两个在服务器上运行的表单,并且会发生另一个错误。 有人可以给我一个想法。 提前致谢。

错误的详细信息如下。

'TextBox' 类型的控件 'ctl00_TextBox1' 必须放置在带有 runat=server 的表单标签内。 说明:在执行当前 Web 请求期间发生未处理的异常。 请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。

异常详细信息:System.Web.HttpException:“TextBox”类型的控件“ctl00_TextBox1”必须放置在具有 runat=server 的表单标记内。

源错误:

执行当前 Web 请求期间生成了未处理的异常。 可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[HttpException (0x80004005): 'TextBox' 类型的控件 'ctl00_TextBox1' 必须放置在带有 runat=server 的表单标签内。]
System.Web.UI.Page.VerifyRenderingInServerForm(控件控件) +2052287
System.Web.UI.WebControls.TextBox.AddAttributesToRender(HtmlTextWriter writer) +49
System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +17
System.Web.UI.WebControls.TextBox.Render(HtmlTextWriter writer) +17
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter 适配器) +25
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter 适配器) +121
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +199
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +20
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter 适配器) +25
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter 适配器) +121
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +199
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +20
System.Web.UI.Page.Render(HtmlTextWriter writer) +26
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter 适配器) +25
System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter 适配器) +121
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2558

版本信息:Microsoft .NET Framework 版本:2.0.50727.1873; ASP.NET 版本:2.0.50727.1433

错误说明了问题

正确

<form id="frm" runat="server">
    <asp:TextBox id="txt" runat="server" />
</form>

不正确

<asp:TextBox id="txt" runat="server" />
<form id="frm" runat="server">
</form>

看到问题中包含的标记“master-pages”,当您尝试在使用母版页的内容页面中动态添加文本框(或者就此而言,任何控件)时,可能会弹出此错误。

只有母版页包含设置了runat =“server”的表单。 内容页面只有内容占有者。

要动态地将控件添加到内容页面,请在内容页面中的所需contentplaceholder中包含一个面板,然后在代码中向其添加控件。 例如,

在内容页面的aspx文件中,添加一个面板

<asp:Panel ID="Panel1" runat="server">
</asp:Panel>   

然后,在你的代码背后,

        Dim txtbox As New textbox()
        Panel1.Controls.Add(txtbox)

发生错误是因为您将控件与runat =“server”放在表单标记之外(runat =“server”也是如此)。 ASP.NET要求使用runat =“server”属性在一个表单中包含所有服务器控件。

我也碰到了这个。 我做了什么,只是添加了一个PageWrapper,所有网站的代码都在里面。 例如:

<body>
 <div ID="PageWrapper">
    <form ID="form1" runat="server">
        <div ID="Header">...</div>
        <div ID="MainContent">...</div>
         ...
    </form>
 </div>
</body>

这样的事情。 希望这可以帮助。

使用标准ASP.Net,您只能拥有一个表单。 这是ASP.Net的限制。 如果您要做的事情需要2个或更多<FORM>标签,那么您将需要MVC或类似的东西。

您没有说明此控件在您的表单上的位置。

如果这个错误是由于我有一个GridView控件内的另一个控件的结果,那么这也可以帮助你:

必须将带有'LinkBut​​ton'类型的控件xxx放在带有runat = server的表单标签内

错误是'TextBox'类型的控件'txtTo',它必须放在带有runat = server的表单标签内。

错误是本规范。

      <tr>
          <td class="style1">
                <strong>To </strong>
            </td>
            <td class="style2">
                <strong>: </strong>
            </td>
            <td class="style6">
                &nbsp;
                <asp:TextBox ID="txtTo" runat="server" Width="475px"></asp:TextBox>
            </td>
            <td></td>
        </tr>

控件和表单标签都必须有runat="server"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM