C# 有没有一种简单的方法可以找到与输入控件相关的验证器?

C# 有没有一种简单的方法可以找到与输入控件相关的验证器?,c#,asp.net,validation,C#,Asp.net,Validation,在过去的几个小时里,我一直在谷歌上搜索,试图找到一种返回所有与输入控件相关的验证器的方法。也许我的措辞不正确,或者这是不可能的 我知道有一个可通过Page.validators访问的验证器集合,但我想做的是: var myValidators = Page.Validators.Where(x => x.ControlToValidate = "abcdef"); 有什么想法吗 页面。验证器包含一个IValidator的集合,但大多数验证器都派生自BaseValidator,后者具有Co

在过去的几个小时里,我一直在谷歌上搜索,试图找到一种返回所有与输入控件相关的验证器的方法。也许我的措辞不正确,或者这是不可能的

我知道有一个可通过Page.validators访问的验证器集合,但我想做的是:

var myValidators = Page.Validators.Where(x => x.ControlToValidate = "abcdef");

有什么想法吗

页面。验证器
包含一个
IValidator
的集合,但大多数验证器都派生自
BaseValidator
,后者具有
ControlToValidate
属性,因此您可以执行以下操作:

var myValidators = Page.Validators.OfType<BaseValidator>
                                  .Where(x => x.ControlToValidate == "abcdef");
var myValidators=Page.Validators.OfType
其中(x=>x.ControlToValidate==“abcdef”);

上述解决方案(或任何使用ControlToValidate字段的解决方案)需要记住的一点是,ControlId名称必须与命名容器/用户控件链接,否则最终会出现重复。