Я знаю, что может быть плохо использовать модели домена в качестве моделей просмотра. Если у моей модели домена есть свойство с именем IsAdmin, и у меня есть действие контроллера Create для создания пользователей, кто-то может изменить мою форму и получить ее для POST значения IsAdmin = true, даже если бы я не раскрывал такое текстовое поле в моем представлении, Если я использую привязку модели, тогда, когда я передал свою модель домена, этот человек теперь будет администратором. Таким образом, решение становится разоблачением только тех свойств, которые мне нужны в модели представления, и с помощью инструмента, такого как AutoMapper, для сопоставления значений свойств моего объекта модели объекта возврата с объектом моего объекта модели домена. Но я читал, что атрибут bind в классе может использоваться для указания привязки модели, какие свойства он должен и не должен связывать. Итак, что на самом деле является причиной того, что два отдельных класса (модель домена и модель представления) являются существенными, представляют собой одно и то же, а затем накладывают накладные расходы при их сопоставлении? Является ли это скорее проблемой организации кода, и если да, то как мне приносить пользу?
ИЗМЕНИТЬ
Одна из самых важных причин, по которой я столкнулся с моделью просмотра, которая отличается от модели домена, - это необходимость реализации шаблона MVVM (на основе шаблона PM Мартина Фаулера) для управления сложными пользовательскими интерфейсами.