Хорошо, я думаю, что примерно воспроизвел то, что вы описали, и удалил свой первоначальный ответ, потому что это было далеко.
Я обнаружил, что если вы хотите, чтобы страница содержимого ссылалась на пользовательский элемент управления, используемый на главной странице, а элемент управления был доступен, а что нет, вы получите сообщение об ошибке, указывающее, что вам нужно сослаться на конкретную сборку, и тогда вы получите ошибки, указывающие на то, что не существует метода типа такого-то и такого-то.
Путем добавления директивы «Зарегистрировать страницу» на дочерней странице в пользовательский элемент управления решена эта проблема. Я воспроизвел это даже с помощью элемента управления, определенного в web.config или на странице. В обоих случаях мне все равно пришлось явно добавить Реестр на странице контента.
Это не имеет смысла для меня, но позволило моему коду скомпилироваться и работать. Дайте ему шанс, дайте мне знать.
Как только вы это сделаете, вы можете ссылаться на элемент управления, как
this.Master.MessageBox.ShowInfo();
Предполагается, что на главной странице у вас есть открытое свойство MessageBox.
Редактировать
Я также обнаружил, что это работает намного лучше, если вы регистрируете элемент управления как на главной странице, так и на странице содержимого и не используете web.config.
Редактировать
Если вы не хотите, чтобы ваша дочерняя страница ссылалась на пользовательский элемент управления, вы можете использовать другие методы на главной странице, такие как ShowInfo (), которые делегируют пользовательский элемент управления.