以为我只是通过一些工作代码扩展其他几个人的评论......
<recaptcha:RecaptchaControl ID="RecaptchaControl" runat="server" />
<asp:CustomValidator ID="RecaptchaValidator" runat="server" OnServerValidate="RecaptchaValidator_ServerValidate" ErrorMessage="Recaptcha input invalid." ValidationGroup="SomeValidationGroup" />
Run Code Online (Sandbox Code Playgroud)
和代码背后......
protected void RecaptchaValidator_ServerValidate(object sender, ServerValidateEventArgs e)
{
this.RecaptchaControl.Validate();
e.IsValid = this.RecaptchaControl.IsValid;
}
Run Code Online (Sandbox Code Playgroud)
谁能想到更简单的方法呢?感谢Vidalik关于使用OnServerValidate的想法.
您可以添加CustomValidator,实现将验证ReCAPTCHA数据的OnServerValidate.可以将CustomValidator分配给任何ValidatorGroup.
reCAPTCHA ASP.NET 插件被编写为向后兼容 ASP.NET 1.1,这意味着ValidationGroup不支持该概念(ASP.NET 2.0 中的新概念)。但该插件附带了可下载的源代码,因此您可以自行修改以支持ValidationGroup。
在 ASP.NET 2.0 中,验证器应该继承BaseValidator并实现IValidator,这意味着您应该将 RecaptchaControl 类型更改为继承BaseValidator而不是WebControl。然后,您将必须稍微修改代码以实现 中定义的所有方法和属性BaseValidator。然后您可以在页面上使用这个新控件,它现在支持ValidationGroup.
| 归档时间: |
|
| 查看次数: |
12269 次 |
| 最近记录: |