Client-side web applications (SPAs whatever) must perform client-side validation to achieve the required responsiveness. But the client is not a secure environment, so client-side validation is a convenience, not to be trusted. Validation has to be performed server-side to ensure security and data correctness.
Asp.net mvc exports validation metadata from server-side models and embeds it into form markup. This process is distributed throughout mvc's form helpers. Each time a form element is generated the framework adds data- attributes to that element that describe that element's validation.
On the client-side a script runs that reads the validation metadata from the data- validation attributes and translates that metadata into a format suited to a client-side validation framework (asp.net mvc uses jquery.validation).