为什么隐藏“_validated”字段

时间:2011-04-28 17:52:52

标签: c# asp.net

在我的一个ASP.NET表单上使用recaptcha时遇到了重复的验证调用,问题是逻辑上没有办法确保调用Page.Validate()并且只调用一次,recaptcha返回false如果Page.IsValid在没有Page.Validate()的情况下被调用,PageControl上没有属性可以查看是否调用了Validate()

我找到了一个解决方法:How to determine whether page was validated?,但我相信这是一个重要的属性,应该可用。

为什么没有提供此物业的任何想法?

1 个答案:

答案 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();
    }
}