Может ли «страница контента» отправлять простые «свойства» на «главную страницу»?

Основная идея мастер-страницы проста: у вас есть блок контента, который вы хотите «вставить» в место на мастер-странице.

В этом очень легко разобраться, даже не читая документацию по мастер-страницам (которую, признаюсь, не читал!).

Что я хочу сделать, так это передать «свойства» главной странице от ее дочернего элемента. Например, у меня может быть основная панель содержимого, для которой я хочу установить отступы в пикселях на дочерней странице. Могут быть и другие простые «примитивные типы», которые я хочу использовать на главной странице для отображения своих дочерних элементов. Я хочу как можно меньше возиться с таблицами стилей, иначе у меня будет куча элементов с одинаковыми именами.

Есть ли предпочтительный способ сделать это?


person Simon_Weaver    schedule 13.01.2009    source источник


Ответы (2)


На главной странице создайте некоторый тип ловушки (свойство или метод), который позволяет некоторому фрагменту кода манипулировать главной страницей любым удобным для вас способом. Затем на отдельных страницах сделайте что-то вроде этого:

YourMasterPageType masterPage = (YourMasterPageType)Page.Master;
masterPage.YourHook();

Что бы вы ни делали, НЕ делайте наоборот (создавайте специальные случаи на главной странице, которые ищут на странице какое-то магическое значение). Вы хотите предоставить интерфейс для управления главной страницей, иначе в конечном итоге вы получите очень беспорядочный код.

person Dan Herbert    schedule 13.01.2009
comment
Совет по интерфейсу был бесценным !! - person Perpetualcoder; 13.01.2009

Да, но наоборот.

Если вы установите свойство MasterPageType своей страницы содержимого, вы сможете получить доступ ко всем общедоступным свойствам главной страницы, используя синтаксис Master.PropertyName.

Таким образом, ваша дочерняя страница может получать и устанавливать значения свойств главной страницы.

person Rune Grimstad    schedule 13.01.2009