自定义验证器错误

Par*_*igm 5 c# forms asp.net web

我尝试创建一个自定义验证器来验证一个复选框,并收到此错误:“无法验证由 'CustomValidator1' 的 ControlToValidate 属性引用的控件 'cbVerify'。”

这是我为此拥有的前端代码:

<li>
  <asp:CheckBox ID="cbVerify" runat="server" Text="I certify that the information entered on this form is correct and accurate."  />
</li>
<li>
  <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Please check" Display="Dynamic" ControlToValidate="cbVerify" OnServerValidate="CustomValidator1_ServerValidate" CssClass="ValidationError"></asp:CustomValidator>
</li>
Run Code Online (Sandbox Code Playgroud)

后端:

 protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
 {
     args.IsValid = cbVerify.Checked ;     
 }
Run Code Online (Sandbox Code Playgroud)

我能得到一些帮助来解决这个问题吗?

Mik*_*sey 6

从 CustomValidator1 中删除 ControlTovalidate 值。它不需要存在于复选框中。

MSDN参考

使用 ControlToValidate 属性指定要验证的输入控件。对于除 CustomValidator 控件之外的所有验证控件,此属性必须设置为输入控件的 ID,该控件可以留空。如果未指定有效的输入控件,则在呈现页面时将引发异常。ID 必须引用与验证控件位于同一容器中的控件。它必须在同一个页面或用户控件中,或者必须在模板化控件的同一个模板中。可以验证的标准控制是:

  • System.Web.UI.WebControls.DropDownList
  • System.Web.UI.WebControls.FileUpload
  • System.Web.UI.WebControls.ListBox
  • System.Web.UI.WebControls.RadioButtonList
  • System.Web.UI.WebControls.TextBox
  • System.Web.UI.HtmlControls.HtmlInputFile
  • System.Web.UI.HtmlControls.HtmlInputPassword
  • System.Web.UI.HtmlControls.HtmlInputText
  • System.Web.UI.HtmlControls.HtmlSelect
  • System.Web.UI.HtmlControls.HtmlTextArea