如何预防ASP.. NET RequiredFieldValidator做回发
本文关键字:RequiredFieldValidator NET 何预防 ASP | 更新日期: 2023-09-27 18:06:25
我怎么也想不出如何防止我的表单回发。我在ASP。. NET 4.5和c# (web应用项目,不是网站)。我已经在几个版本的ASP中有效地做到了这一点。. NET,但我不知道如何防止一个简单的必需字段验证的回发。表单刷新后验证就开始工作了。下面是我的代码:
<label for="MainContent_txtName" class="required">Name</label>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqName" runat="server" ErrorMessage="Required field" ControlToValidate="txtName" EnableClientScript="true" ValidationGroup="contact" />
<label for="MainContent_txtEmail" class="required">Email Address</label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
<label for="MainContent_txtPhone">Phone Number</label>
<asp:TextBox ID="txtPhone" runat="server"></asp:TextBox>
<label for="MainContent_txtComment" class="required">Question or Comment</label>
<asp:TextBox ID="txtComment" TextMode="multiline" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="submit" OnClick="btnSubmit_Click" CausesValidation="true" ValidationGroup="contact" />
我试过没有ValidationGroup, CausesValidation和EnableClientScript(每个都有几个变体)。此外,在母版页中还有一个表单将其封装。我只是想在提交表单之前简单地验证客户端上的字段不是空的。任何帮助都是感激的。我想我显然错过了一些简单的东西。
设置EnableClientScript属性为True
<asp:requiredfieldvalidator id="TextBoxRequiredValidator"
controltovalidate="NumberTextBox"
enableclientscript="True"
display="Dynamic"
errormessage="Please enter a value."
text="*"
runat="server"/>
我只是决定不尝试在客户端完成任何事情,而在服务器端使用Page进行验证。IsValid和。IsValid。此外,我使用ScriptManager/UpdatePanel来避免页面刷新。当验证失败时,更干净的UI和更多的控制。