Лучшие практики при внедрении IModelBinder [закрыто]
-
20-09-2019 - |
Вопрос
Я ищу набор лучших практик для использования при внедрении 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 , потому что он автоматически связывает основные свойства в entity .Я улучшил его, так что он также связывает навигационные свойства.My binder сначала выполняет унаследованную привязку, а затем выполняет поиск дополнительных значений свойств навигации в форме.Я думаю, что ваш подход должен зависеть от того, что Вы действительно хотите делать.Вы также можете использовать reflector и посмотреть, что на самом деле стоит за default binder.Это может убедить Вас унаследовать.
Трэвис Иллиг недавно написал действительно хорошую статью в блоге о проверке типов данных при создании пользовательской модели binder.
Я никогда раньше не видел этого совета и подумал, что он действительно хорош, поэтому я хотел добавить эту ссылку: http://www.paraesthesia.com/archive/2012/01/31/data-type-validation-and-model-binding-in-asp-net-mvc.aspx
MVC Futures 2 имеет расширяемая система привязки моделей.Вы можете узнать больше в документации по выпуску по адресу http://aspnet.codeplex.com/releases/view/41742
Просто скачайте "ASP.NET Документация по MVC 2 Futures Extensible Model Binder Documentation"