簡體   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