我有这个错误-类型为'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>

最佳答案

如错误消息所述,您需要在runat="server"标记中添加一个form。这只是ASP.NET要求工作的内容。

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

只需将runat="server"标记内的form放入,即可进行设置。

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

关于c# - 类型为'TextBox'的控件'txtUserName'必须放置在带有runat = server的表单标记中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28943854/

10-09 02:26