My go-to library for model validation in .NET is Fluent Validation, and I have written a number of posts about it before. On the current project I am working we needed to do database validation which I described how to do in this blog post. This time however I needed to go one step further and not only do the database validation on the server side, but also on the client side.
One of the most popular ways to do model validation in the ASP.NET MVC Framework is surely to use the built-in model validation features using data annotations. This will probably work fine in most instances, but I prefer using the Fluent Validation library in my own projects mainly because of how easy it is to unit test validation rules, as well as the fact that I can split the validation rules completely from the underlying model.