Если у меня есть главный «составной настраиваемый серверный элемент управления» с несколькими дочерними настраиваемыми элементами управления, возможно ли, чтобы главный элемент управления совместно использовал свое состояние просмотра с дочерними элементами управления, которые также являются настраиваемыми составными серверными элементами управления (все элементы управления являются составными пользовательскими элементами управления сервера)?
Чтобы еще немного расширить, скажем, у меня есть элемент управления Person , Адрес control, Телефон control и Notes control. Адрес , Телефон и Примечания могут существовать как независимые элементы управления или как часть элемента управления Персона . Поскольку каждый элемент управления отвечает за свое собственное состояние представления и хранит в нем необходимые данные, чтобы он мог выполнять рендеринг / обратную передачу и т. Д., В конечном итоге в состоянии просмотра возникает дублирование lage, поскольку элемент управления Person сохраняет все данные, а затем каждый дочерний элемент управления снова сохраняет свои собственные данные. Кроме того, чтобы еще больше усложнить ситуацию, элемент управления Person динамически добавляет дочерние элементы управления, поэтому можно добавить второй адрес / номер телефона / примечание и т. Д., Что может привести к еще большему состоянию просмотра (до 1 МБ).
В случае, когда все элементы управления Address / Phone / etc являются дочерними элементами элемента управления Person , я могу каким-то образом обмениваться общими данными представления состояния, поэтому я у вас нет 2/3/4 копий некоторых вещей в viewstate, и когда они не являются компонентами, просто действуйте как обычно?
У меня есть одна идея для решения, но его довольно неприятное imo, где я мог бы изменить элемент управления Person , выставить его представление или данные, а затем в дочернем элементе проверить элемент управления. иерархии, и если дочерний элемент управления является частью Person , не используйте его для собственного состояния просмотра, используйте открытое. Это потребует от меня переделки существующего кода, которого я бы предпочел избежать, если это возможно.