Page.Validate() and Page IsValid
Here we look at what is going on with using Page.Validate() and Page IsValid.
I'd obviously come across some situation years ago where I discovered that I needed to call both methods to ensure that validation had definitely occurred on the page, and ever since both method calls had been finding there way into my code more as a security wall, but perhaps in many cases were unnecessary, so I decided to find out exactly what's going on here.
You can call validation manually in C# using the Page.Validate() method. You can either validate the whole page by calling Page.Validate(), or validate just one validation group by calling Page.Validate("MyValidationGroup"). But do you need to? Most of the time you'll find you don't.
Most controls have CausesValidation set to true by default, and therefore they will call Page.Validate() by default. In this particular scenario, validation occurs before the event handler for the control (eg Button click), so validation is automatically called before we get into our click event handler. However, if CausesValidation is set to false, then validation occurs after the event handler of the control, so in our button click event handler, validation won't have occured.
Another thing to consider with Page.Validate() is that it doesn't happen until after the Load event has finished. So if you need to have had your values validated in the Page_Load event or earlier, you'll need to manually call Page.Validate() to have the values validated first.