Ответ 1
У Скотта Аллена есть несколько советов о привязке модели: http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx.
Я ищу набор лучших практик для использования при реализации IModelBinder
.
Я прочитал три разные книги MVC, и каждый из них делает некоторые немного разные вещи в своих реализациях без каких-либо реальных объяснений.
IModelBinder
DefaultModelBinder
вместо прямой реализации IModelBinder
, но я действительно не вижу, как использовать преимуществаModelState.SetModelValue()
, чтобы следовать соглашению.Я просто хочу удостовериться, что мои привязки модели следуют соглашениям, и что я правильно понимаю весь ModelBindingContext
.
Любые советы, подсказки, полезные советы по рекомендации?
У Скотта Аллена есть несколько советов о привязке модели: http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx.
Я унаследован от DefaultModelBinder, потому что он автоматически связывает основные свойства в сущности. Я улучшил его, так что он связывает также свойства навигации. Сначала мое связующее выполняет наследование, а затем выполняет поиск дополнительных значений свойств навигации в форме. Я думаю, что ваш подход должен зависеть от того, что вы действительно хотите сделать. Вы также можете использовать отражатель и посмотреть, что действительно стоит за повязкой по умолчанию. Это может убедить вас наследовать.
Трэвис Иллиг недавно написал действительно хорошую статью в блоге о проверке типа данных при создании настраиваемого связующего объекта.
Я никогда не видел этого совета раньше, и я думал, что это действительно хорошо, поэтому я хотел внести эту ссылку: http://www.paraesthesia.com/archive/2012/01/31/data-type-validation-and-model-binding-in-asp-net-mvc.aspx
Здесь представлен один живой пример IModelBinder. В этом примере сложный Apache solr querystring была завернута для передачи простых объектов в Модель.
IModelBinder Внедрение
MVC Futures 2 имеет расширяемую систему привязки модели. Вы можете узнать больше в документации по выпуску http://aspnet.codeplex.com/releases/view/41742
Просто скачайте "ASP.NET MVC 2 фьючерсы расширяемой модели Binder Documentation"