Model Binding: Binding to Collections of Custom Model Types
Creating a Custom Value Provider
Creating a Custom Model Binder and register it
Model Validation: Validate in the controller
Model Validation: custom property validation attribute and model validation attribute