验证器即使输入错误也会继续运行

时间:2011-10-31 18:18:47

标签: asp.net validation

我正在使用以下格式的正则表达式构建服务器端验证:

protected void valMessage_ServerValidate(object source, ServerValidateEventArgs args)
{
    regex = new Regex(@"^\d+$");

    if (regex.Match(args.Value).Success == true)
        args.IsValid = true;
    else
        args.IsValid = false;
}

这是连接到自定义验证器。问题是,即使它失败(即当args.IsValid = false;时)页面仍然保持正常运行。一旦找到IsValid = false的控件,它是否应该立即停止?为什么我的代码仍在运行?

3 个答案:

答案 0 :(得分:1)

没有看到“页面继续运行”的意思,很难说。假设您有一个事件处理程序响应“提交”按钮的点击,您应该检查事件处理程序中的Page.IsValid。

我经常犯的另一个错误是忘记在按钮和所有验证器上设置ValidationGroup。

答案 1 :(得分:0)

1.使用Page.IsValid()检查Page_Load事件。 2.您可以使用Page.Validate()激活验证。您的服务器端验证是否会触发? 3.如果第2步的答案为否,请验证

  1. 自定义验证程序的OnServerValidate属性您已设置了正确的服务器验证功能。
    1. 您已将自定义验证组设置为自定义验证程序。

答案 2 :(得分:0)

不是ASP.Net的专家....你应该通过验证控件一次,几乎所有的验证都在那里完成......

RequiredField Validator
Compare Validator
RegularExpression Validator
Range Validator
Custom Validator
Validation Summary

您可以获得简要说明herehere。希望它有所帮助。