Когда использовать IModelBinder против DefaultModelBinder - PullRequest
14 голосов
/ 16 декабря 2011

У меня есть сайт MVC3, на котором будет модель, которая не будет работать с привязкой модели по умолчанию.Я просматривал примеры кода в режиме онлайн, и, похоже, я мог бы создать пользовательский механизм связывания модели, который либо реализует IModelBinder, либо наследует от DefaultModelBinder.Может кто-нибудь объяснить плюсы / минусы каждого подхода и, возможно, пример того, когда будет использоваться один подход, а не другой.

Заранее спасибо.

1 Ответ

9 голосов
/ 16 декабря 2011

Два подхода на самом деле одинаковы: DefaultModelbinder реализует IModelBinder, поэтому наследование от него так же хорошо, как и другой способ реализации IModelBinder.

Pro для наследования от DefaultModelBinder: вы можете повторно использовать множествоповедения из DefaultModelBinder и переопределяют только те, которые вы хотите.Вам не нужно реализовывать с нуля.

Pro для создания собственной реализации IModelBinder: у вас есть только один метод для реализации (IModelBinder.BindModel), и вы имеете полный контроль над тем, что делает ваша реализация.

Правильный путь в значительной степени зависит от того, что вам нужно от вашего пользовательского связывателя, но поведение DefaultModelBinder обычно то, что вам нужно (и в большинстве случаев простой старый DefaultModelBinder действительно является желаемым связывателем).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...