我知道在ASP.NET页面的代码隐藏中调用Page.IsValid会抛出异常,如果我之前没有显式调用Page.Validate,或者如果验证没有在控件的事件处理程序中自动发生启用“CausesValidation”。
有时我在页面的方法或事件中,我需要知道所有输入是否有效,但我不知道在这个回发来自的特定地方。因此,我不知道该页面之前是否已经过验证,这意味着,如果我可以在不调用Page.Validate之前询问Page.IsValid。
有没有办法检查页面是否已经过验证(类似于布尔属性“Page.HasBeenValidated”或其他什么)?
答案 0 :(得分:4)
尝试在try catch
中分配一个私有变量 private bool isPageValid;
public bool IsPageValid
{
get
{
try
{
isPageValid= Page.IsValid
}
catch
{
Page.Validate();
isPageValid = Page.IsValid
}
return isPageValid;
}
}