Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# 在处理其他代码之前启动自定义验证器_C#_Asp.net_Customvalidator_Server Side Validation - Fatal编程技术网

C# 在处理其他代码之前启动自定义验证器

C# 在处理其他代码之前启动自定义验证器,c#,asp.net,customvalidator,server-side-validation,C#,Asp.net,Customvalidator,Server Side Validation,我的.aspx文件中有以下内容: <asp:CustomValidator ID="JobIDCustomFieldValidator" runat="server" ControlToValidate="JobID" OnServerValidate="jobIDCustom_ServerValidate" EnableClientScript="false" SetFocusOnEr

我的.aspx文件中有以下内容:

    <asp:CustomValidator
        ID="JobIDCustomFieldValidator"
        runat="server"
        ControlToValidate="JobID"
        OnServerValidate="jobIDCustom_ServerValidate"
        EnableClientScript="false"
        SetFocusOnError="true"
        Display="Dynamic"
        ErrorMessage="! - Not Found"
        CssClass="validationError">
   </asp:CustomValidator>
   <br />        
   <asp:TextBox ID="JobID" runat="server"></asp:TextBox>
   <asp:Button runat="server" ID="ProcessButton"  Text="Process" onclick="ProcessButton_Click" />
我希望首先检查自定义验证器,如果它为false,则停止并不要运行ProcessButton_Click()方法中的任何代码。这可能吗?如果没有的话,我有没有其他的方法来设置这个

据我所知,我不能使用javascript的客户端验证来进行模拟和文件访问


任何帮助都将不胜感激。

要进行总结,请检查按钮单击处理程序中的页面是否有效

protected void ProcessButton_Click(object sender, EventArgs e)
{
        if (Page.IsValid)
        {
            //do button stuff
        }   
}
验证控制测试用户输入、设置错误状态和生成错误消息。它们不会改变页面处理流程,例如,如果检测到用户输入错误,它们不会绕过您的代码。相反,在执行特定于应用程序的逻辑之前,测试代码中控件的状态。如果检测到错误,则会阻止自己的代码运行;页面将继续处理,并返回给用户,并显示错误消息。“

来自MSDN


它应该会在按钮上使用CausesValidation=“true”自动执行,对吗?@CjS。我在按钮上添加了CausesValidation=“true”,但当自定义验证失败并打印错误消息时,它仍在运行ProcessButton中的代码。添加Page.Validate()如何;并在您的按钮单击处理程序中测试Page.IsValid?@CjS。我在我的按钮单击处理程序中添加了以下内容:Page.Validate();Response.Write(Page.IsValid);Response.Write(“我在这里”);当我单击按钮时,它会打印以下内容:False我在这里太好了!因此您的验证正在工作。请使用它来决定是否要在事件处理程序中执行任何其他工作…if(Page.IsValid){Response.Write(“我在这里”);}
protected void ProcessButton_Click(object sender, EventArgs e)
{
        if (Page.IsValid)
        {
            //do button stuff
        }   
}