2010-02-24 79 views
2

我知道在ASP.NET页面的代码隐藏中调用Page.IsValid会引发异常,如果我之前没有显式调用Page.Validate,或者验证没有在控件的事件处理程序中自动发生“的CausesValidation”。有没有办法检查我是否可以安全地使用Page.IsValid?

有时候我在一个页面的方法或事件中,我需要知道所有的输入是否有效,但我不知道在这个回传来自哪个特定的地方。所以我不知道这个页面是否在之前被验证过,也就是说,如果我可以在不调用Page.Validate之前询问Page.IsValid,或者之前没有。

有没有办法来检查一个页面是否已经验证(如布尔属性“Page.HasBeenValidated”或其他)?

回答

4

尝试将一个私有变量指定尝试捕捉内部

private bool isPageValid; 
public bool IsPageValid 
{ 
    get 
    { 
     try 
     { 
     isPageValid= Page.IsValid 
     } 
     catch 
     { 
     Page.Validate(); 
     isPageValid = Page.IsValid 
     } 
     return isPageValid; 
    } 
} 
+0

谢谢,这很好!我希望在页面类中内置一些东西,但是,它似乎并不存在。 – Slauma 2010-02-24 20:57:54

+0

你不需要私有变量,你可以简单地执行'try {return Page.IsValid; } catch {Page.Validate();返回Page.IsValid; }'。 – Steven 2010-02-25 08:18:58

相关问题