To understand why, let me tell you a story that explores the depths of your model’s views and controllers as well as the life of your page.
First, your controller is accessed by the incoming request.
Then your controller will load up a model that has properties marked up with validation attributes.
The model is passed to the view.
The request is fulfilled and the page content is loaded into the browser.
It’s at this point that validation should work as expected.
However, if you make an AJAX request that gets a different form or more fields to show on the page, the new content will not run the client side validation.
This is because the content we loaded via the AJAX request is not hooked up like the fields that were there when the page first loaded.
The important bit in this code snippet is where we call jQuery.validator.unobtrusive.parse, this hooks up the validation functions to the control events that are required for unobtrusive validation. Now that you can validate input, don’t be a validation nazi.