Validation is an extremely important part of a software system. It prevents users from inserting incorrect data. Although it seems to be a piece of cake, it’s not. It’s hard to keep validation logic separated from business logic. This problem, as almost all of known to developeres problems, has as many solutions as there are programmers. Nevertheless, ASP.MVC comes with a common solution to it. It’s called Model Validation. The main idea behind it is to put all validation in one place without mixing it with business logic. This post will show you how to use it in a proper manner and how to handle common issues and scenarios, such as remote validation. I’ll try to show some of the best practices that are ready to use in production.