Я надеюсь, что мой загадочный заголовок не слишком загадочный, но я попытаюсь объяснить, что именно я на самом деле хочу сделать.
У меня есть главная страница «A», у которой есть дочерние страницы «B» и «C».
Это реализовано со стандартной моделью главной страницы в ASP.NET просто отлично.
У моего сайта есть две темы: «T1» и «T2».
Они фактически представляют разных партнеров, T1 - наша собственная компания, а T2 - партнер.
Я хочу отображать конкретные вещи на страницах «B» и «C» в зависимости от того, какую тему я использую. Например, я могу захотеть вставить дополнительные кнопки или графику на странице «B» специально для партнера по теме «T2». Этот контент будет в произвольной точке на странице в зависимости от самой страницы. Некоторые партнеры могут даже не использовать эту функцию.
Проблема в том, что я хочу сделать это настолько декларативно, насколько это возможно, и минимизировать знания, которые есть на страницах о теме.
Вот здесь и возникает концепция «обратной» главной страницы. Я хочу определить область на дочерней странице, в которую можно вставить контент, специфичный для «темы». (я говорю «тема» потому что это то, что использует ASP.NET - и, скорее всего, то, к чему я бы привязал контент).
Так что вы можете быть удивлены:
- Почему вы не можете просто использовать главную страницу для этого и добавить дополнительные разделы контента? Причина в том, что контент может появляться в любом месте на странице в месте, которое относится к этой странице.
- Почему вы не можете использовать «вложенную» главную страницу? По сути та же самая причина.
Возможное решение:
Мне интересно создать какой-то пользовательский элемент управления, который бы имел текстовый ключ, представляющий, какой тип контента будет вставлен туда. Пользовательский элемент управления должен знать, что отображать для каждой «темы», возможно, путем динамического создания соответствующего дополнительного пользовательского элемента управления.
Это кажется немного неуклюжим - поэтому мне интересно, какие решения другие могли бы создать для подобных ситуаций.