在Asp.Net中,我如何确定哪个验证器控件将Page.IsValid设置为false?

tra*_*vis 2 asp.net validation postback

我有一个很多RequiredFieldValidators 的庞大表单,我怎样才能以编程方式确定哪个控件设置IsValidPageto 的属性false

Mar*_*ett 11

在服务器端,您可以查看Validators属性以查找所有IValidator实例.然后,你只测试哪一个不是.IsValid.

var notValidValidators = Page.Validators.Cast<IValidator>().Where(v => !v.IsValid);
Run Code Online (Sandbox Code Playgroud)

在客户端,它是类似的.有一个JavaScript数组Page_Validators,每个都有一个isvalid属性.

var notValidValidators = Page_Validators.filter(function(v) { return !v.isvalid; });
Run Code Online (Sandbox Code Playgroud)

  • IEnumerable 上的 LINQ 扩展方法在哪里。确保您有“using System.Linq;”。如果 ValidatorCollection 不支持 IEnumerable&lt;T&gt;,您可以执行类似 Page.Validators.Cast&lt;IValidator&gt;().Where(...) 的操作 (2认同)