Это в значительной степени зависит от имеющейся проблемы и типа восстанавливаемых элементов управления.Все ли это простые текстовые поля или различные сложные пользовательские элементы управления?главное здесь: если вы хотите, чтобы ваш динамический элемент управления восстановил состояние после постбэка, вы должны заново создать его в фазе инициализации жизненного цикла страницы.
Тем не мение.Нет ничего похожего на способ Microsoft или способ, рекомендуемый Microsoft в принципе.Когда вы динамически добавляете несколько простых элементов управления одного и того же типа, скрытое поле со счетчиком будет работать, но при наличии нескольких сложных элементов управления придется использовать другие способы.Вы можете по-прежнему скрывать поля и сохранять в них строки полного типа элемента управления (т. Е. System.Web.UI.WebControls.TextBox) и повторно создавать их экземпляры.Но подумайте о еще более сложном примере размещения различных элементов управления на разных частях страницы ... И инициализации их в определенном состоянии.Это было бы немного сложнее.Следовательно, нет способа Microsoft ... Рекомендованный способ - воссоздать на этапе инициализации.И это все.
Все может быть решено, но иногда можно было ошибиться в пользовательском интерфейсе, и можно было бы сделать проще, используя другой подход.
Дополнительные пояснения
Этот метод с полным состоянием ViewState
, который использует Asp.net, считается худшим виновником веб-разработчиков в целом.Вот почему разработчики Asp.net MVC считают, что новая среда - это блаженство, так как она намного больше подходит для протокола HTTP без состояния.Я являюсь одним из них.: D