Ответ 1
Оба подхода на самом деле одно и то же: DefaultModelbinder реализует IModelBinder, поэтому наследование от него - это способ, как другой, для реализации IModelBinder.
Pro для наследования от DefaultModelBinder: вы можете многократно использовать поведение из DefaultModelBinder и переопределять только те, которые вы хотите. Вам не нужно реализовывать с нуля.
Pro для собственной реализации IModelBinder: у вас есть только один метод для реализации (IModelBinder.BindModel
), и вы полностью контролируете, что делает ваша реализация.
Правильный способ во многом зависит от того, что вам нужно от вашего настраиваемого связующего, но поведение DefaultModelBinder обычно является тем, что вам нужно (и в большинстве случаев простой старый DefaultModelBinder действительно является связующим, который вы хотите).