我正在使用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>
当表单被提交并且页面重新加载时,表单中的所有字段都是空的。这很烦人,因为我需要验证表单并告知用户用户名是否已经在用户中。例如。
为什么会这样?即使我拿出处理表单的所有代码,它仍然在提交时被清除。在网络上,人们所处的困难恰恰相反 - 他们希望表格在不存在时能够清除。
为什么反向发生在我身上,我该如何解决?
答案 0 :(得分:2)
在你的回答中,不清楚你为什么使用html输入。但是,如果你可以使用asp.net控件,我建议使用它。
<asp:TextBox id="textbox" runat="server" />
而不是
<input type="text" maxlength="50" />
使用asp.net文本框控件viewstate即使在您单击提交后也会在文本框中保留您的值,但由于验证错误而保持在同一页面上。当你离开另一个页面进入页面时,你将失去你的价值。
有关viewstate http://msdn.microsoft.com/en-us/library/ms972976.aspx
的更多信息答案 1 :(得分:0)
电子邮件的“名称”属性是阅读帖子所必需的属性。
您没有提供任何显示您如何尝试读取值的代码,我假设您正在尝试阅读后面的代码。
您应该能够将值读作Request [“NameOfControl”]。
您是否在页面加载时设置值,这可能会覆盖输入的值?
阅读上述评论:
你必须使用javascript重新填充控件,因为控件不是服务器端..因为你没有使用带有runat =“server”的webcontrol,所以没有ViewState,所以你有重新填充手动值。