【问题标题】:Control 'txtUserName' of type 'TextBox' must be placed inside a form tag with runat=server“TextBox”类型的控件“txtUserName”必须放在带有 runat=server 的表单标签内
【发布时间】:2015-05-10 17:14:23
【问题描述】:

我有这个错误 - 'TextBox' 类型的控件'txtUserName' 必须放在带有 runat=server 的表单标记内。我无法摆脱它,我的文本框放在带有 runat=server 的表单标签内。

我正在访问的页面是我的“重置密码”页面.

这是我目前正在使用的代码。

<head runat="server">
    <title></title>
</head>
<body>
   <div style="font-family:Arial">
    <table style="border: 1px solid black; width:300px">
        <tr>
            <td colspan="2">
                <b>Reset my password</b>
            </td>
        </tr>
        <tr>
            <td>
                User Name
            </td>    
            <td>
                <form action="ChangePassword.aspx" method="get"> 
                <asp:TextBox ID="txtUserName" Width="150px" runat="server" 
                ontextchanged="txtUserName_TextChanged">
                </asp:TextBox>

                </form>
            </td>    
        </tr>
        <tr>
            <td>

            </td>    
            <td>
                <asp:Button ID="btnResetPassword" runat="server" 
                Width="150px" Text="Reset Password" onclick="btnResetPassword_Click" />
            </td>    
        </tr>
        <tr>
            <td colspan="2">
                <asp:Label ID="lblMessage" runat="server"></asp:Label>
            </td>    
        </tr>
    </table>
</div>
</body>
</html>

【问题讨论】:

    标签: c# asp.net forms visual-studio-2010


    【解决方案1】:

    如错误消息所述,您需要在form 标记中添加runat="server"。这正是 ASP.NET 需要工作的东西。

    ASP.NET 处理事件和回发的方式强制执行此要求。它试图将页面的状态保留在实际页面中(称为“视图状态”),并在提交表单时将其发回。这是为了使无状态网络有状态而发明的。

    只需将runat="server" 放入form 标签内即可设置。

    <form runat="server" action="ChangePassword.aspx" method="get"> 
    

    【讨论】:

    • 嗨,我刚试过,这就是我的表单现在的样子
      但是我仍然得到同样的错误
    • 所有 ASP.NET 元素都应该在一个表单中。每页也只能有一个。尝试通过将forms 覆盖在整个页面周围来扩大它的覆盖范围。
    • @PatrickHofman “每页一个”不正确。一个页面上可以有多个表单,只要它们没有嵌套,甚至可以有多个带有runat="server" 的表单,只要在任何给定时间只有一个是visible
    • @MikeSmithDev 你可能是对的。也许来自 ASP.NET v1?
    • @KaranRamchandani:需要更多帮助吗?如果没有,请接受您最喜欢的答案,并查看您之前的问题。
    【解决方案2】:

    像这样添加

    标签..., 它会工作..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 1970-01-01
      • 2017-08-27
      • 2011-09-14
      • 1970-01-01
      相关资源
      最近更新 更多