ASP.NET Вложенные мастер-страницы, как установить содержимое верхней страницы из файла aspx? - PullRequest
2 голосов
/ 29 апреля 2010

У меня есть контент из CMS, который мне нужно переместить на необработанные страницы asp.net. Поскольку шаблоны являются вложенными, я предполагаю, что могу использовать вложенные мастер-страницы для их создания, но я обнаружил, что не могу установить значения на главной мастер-странице с глубокой дочерней страницы.

Вот пример. У меня есть несколько вложенных мастер-страниц с заполнителями содержимого:

  • top master (с contentPlaceHolder1)
  • вложенный мастер, зависит от топ-мастера (с contentPlaceHolder2)
  • Страница aspx, в зависимости от вложенного мастера, определяет содержимое для contentPlaceHolder1 и 2

Проблема в том, что asp.net не позволяет мне иметь значение contentPlaceHolder1, определенное на странице содержимого, оно должно быть определено во вложенном мастере. Но дело в том, что клиентская страница знает это значение, а не мастера шаблона (например, страница знает о графике, которую она должна отображать вверху, но заполнитель для графики является главным мастером).

Как установить значения на странице aspx, которые будут отображаться в главном мастере?

Ответы [ 2 ]

1 голос
/ 29 апреля 2010

Обычно вы должны сделать следующее:

  1. установка публичной собственности на главной странице
  2. добавьте объявление @MasterPage вверху любой контентной страницы, к которой вы хотите получить доступ к свойству в
  3. доступ к недвижимости как Master.YourPageProperty = "value";

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

Попробуйте посмотреть в этой статье, чтобы подкрепить идеи, которые я затронул:

0 голосов
/ 29 апреля 2010

Обычно я делаю все свои страницы .aspx наследуемыми от базовой страницы, и на этой странице я настраиваю свойства для любых данных, которыми я хочу поделиться. Затем на главной странице вы можете привести текущую страницу к типу basepage и получить доступ ко всем данным.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...