Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止ASP.NET RequiredFieldValidator执行回发?_C#_Asp.net_Validation - Fatal编程技术网

C# 如何防止ASP.NET RequiredFieldValidator执行回发?

C# 如何防止ASP.NET RequiredFieldValidator执行回发?,c#,asp.net,validation,C#,Asp.net,Validation,我一辈子都想不出如何阻止我的表单进行回发。我在ASP.NET4.5和C#(web应用程序项目,而不是网站)。我已经在ASP.NET的几个版本中有效地做到了这一点,但我不知道如何防止对简单的必填字段验证进行回发。表单刷新后,验证即开始工作。这是我的密码: <label for="MainContent_txtName" class="required">Name</label> <asp:TextBox ID="txtName" runat="server">&

我一辈子都想不出如何阻止我的表单进行回发。我在ASP.NET4.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


我刚刚决定不尝试在客户端完成任何事情,而在服务器端使用Page.IsValid和.IsValid进行验证。此外,我使用ScriptManager/UpdatePanel来避免页面刷新。当验证失败时,UI会更干净,控制也更多。感谢大家的输入。

如果验证失败,您可以处理表单提交事件客户端并返回false吗?将按钮的代码包装在更新面板中,这可能是一个好的开始。如果我正确地回答了您的问题,单击按钮将始终触发回发。请参阅u DoPostBack()如果失败,请使用JavaScript,然后返回else do something“表单刷新后验证工作正常”是什么意思?我已经有一段时间没有使用WebForms了,但JavaScript中的预验证是验证程序的关键点之一。那么,您如何验证该行为,哪种浏览器(-version)启用了JavaScript呢?@HenkHolterman很抱歉造成混淆。当页面完成回发时=表单刷新一次。默认情况下,如果im没有出错,则应为true。我在DOM检查器中查找,它表示找不到JQuery 1.7.1。因此,我在脚本路径中删除了JQuery,错误消失了,但每次它仍在进行回发。非常令人沮丧。