The best practice is to have a separate set of domain objects and mvc models. That way you can wire up all of your annotations on your viewmodel and people won't be able to post fields that you don't want the user to edit
You can also use AutoMapper to simplify binding between the two