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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 13 января 2009

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

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

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

1 голос
/ 13 января 2009

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

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

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

...