How can I cleanly share a Custom Validator (ValidationAttribute) for a data model, a ViewModel, and a DTO in ASP.NET

I’m doing a ASP.NET MVC course. I’m building a REST Web API using ASP.NET WebAPI 2. The application also contains standard MVC 5 views. I’m using DTOs (Data Transfer Objects) to decouple the API from the data model. I’ve made a custom ValidationAttribute that I have applied to a property in my data model, and I’d like to use the same Validation attribute for a property on my DTO as well as a property ViewModel used in an MVC view.

ASP.NET MVC 3 Model Binding Resources

I am looking for a good resource that describes very thoroughly how model binding works with ASP.NET MVC 3 (or to a lesser extent, MVC 2) and different approaches. I have not been able to find any good resources on this topic, except bits and pieces there. The information on the net is more about “how to do X” than explaining how the internals of model binding work. Any recommendations? Book recommendations are fine as well.

WebAPI Custom Model binding of complex abstract object

This is a tough one. I have an issue with binding a model from JSON. I am attempting to resolve polymorphic-ally the record supplied with the type of record that it will resolve to (I want to be able to add many record types in the future). I have attempted to use the following example to resolve my model when calling the endpoint however this example only works for MVC and not Web API applications.

ASP.NET MVC Model Binder returns null object

I am having a problem where everytime I post a form back to the [HttpPost] version of my controller action, the ModelBinder returns a null object. I can’t work out why. If I change the signature to use a FormCollection instead I can see that all the correct keys have been set. Can someone help me pin point what’s wrong here, because I can’t spot it.