Asp.net 停止表单在提交时清除

Asp.net 停止表单在提交时清除,asp.net,html,forms,Asp.net,Html,Forms,我使用的是asp.net,但只是使用常规表单,而不是runat=“server”表单。这里有一个: <form action="addUser.aspx" method="post"> <fieldset> <label>Username</label> <input name="username" type="text" maxlength="50" /> <span id

我使用的是asp.net,但只是使用常规表单,而不是runat=“server”表单。这里有一个:

<form action="addUser.aspx" method="post">
    <fieldset>
        <label>Username</label>
        <input name="username" type="text" maxlength="50" />
        <span id="usernameInfo" class="fieldInfo" runat="server"></span>
    </fieldset>

    <fieldset>
        <label>Password</label>
        <input name="password" type="password" maxlength="50" />
        <span id="passwordInfo" class="fieldInfo" runat="server"></span>
    </fieldset>

    <fieldset>
        <label>Email</label>
        <input type="text" maxlength="50" />
        <span id="emailInfo" class="fieldInfo" runat="server"></span>
    </fieldset>

    <div class="buttonHolder">
        <button type="submit">Submit</button>
        <span id="generalInfo" runat="server"></span>
    </div>

</form>

用户名
密码
电子邮件
提交
提交表单并重新加载页面时,表单中的所有字段均为空。这很烦人,因为我需要验证表单,并通知用户用户名是否已经在user中

为什么会这样?即使我取出了处理表单的所有代码,它仍然在提交时被清除。在网络上,人们所面临的困难恰恰相反——他们希望表单在不清楚的时候被清除

为什么我会遇到相反的情况,我该如何解决呢?

电子邮件没有“name”属性,这是阅读文章所必需的属性

您没有提供任何代码来显示您如何尝试读取值,我假设您正在尝试读取隐藏的代码

您应该能够以请求[“NameOfControl”]的形式读取该值

您是否在加载页面时设置了可能会覆盖输入值的值

阅读上述评论:


由于控件不是服务器端的,因此必须使用javascript重新填充控件。。由于您没有将WebControl与runat=“server”一起使用,因此没有ViewState,因此您可以手动重新填充值。

在您的回答中,不清楚您为什么使用html输入。但是如果你能使用asp.net控件,我建议你使用这个

<asp:TextBox id="textbox" runat="server" />

处理提交表单的代码将使诊断更容易(特别是因为您不使用服务器控件)。如果需要,可以使用Fiddler验证http post是否包含表单数据。@KenHenderson我可以看到表单数据正在进入服务器。问题在于,当页面刷新时,它会将其从用户浏览器中清除。即使我去掉了所有的表单处理代码,这种情况仍然会发生。就我个人而言,我会同意下面鲍比的答案。但正如L Johnson提到的,如果您不使用服务器控件,您有责任在页面在服务器上完成处理之前将发布的数据填充到这些控件中,如果您希望它出现的话。@KenHenderson啊,我明白了。我错误地认为默认行为是另一种情况——除非明确清除,否则在提交表单后字段将保持填充状态。
<input type="text" maxlength="50" />