在我的一个ASP.NET表单上使用recaptcha时遇到了重复的验证调用,问题是逻辑上没有办法确保调用Page.Validate()
并且只调用一次,recaptcha返回false如果Page.IsValid
在没有Page.Validate()
的情况下被调用,Page
或Control
上没有属性可以查看是否调用了Validate()
。
我找到了一个解决方法:How to determine whether page was validated?,但我相信这是一个重要的属性,应该可用。
为什么没有提供此物业的任何想法?
答案 0 :(得分:2)
要回答您的问题,我会转发您对类似问题的优秀答案:get the value of non public member。
但如果您认为这是真正的重要属性,您可以实现自己的Validated
并将验证逻辑绑定到它。例如。您可以覆盖Validate
类中的Page
个方法:
public class MyPage : Page
{
public bool Validated { get; private set; }
public override void Validate(string validationGroup)
{
this.Validated = true;
base.Validate(validationGroup);
}
public override void Validate()
{
this.Validated = true;
base.Validate();
}
}