Получить и привести MasterControl UserControl со страницы содержимого для доступа к конкретному свойству UC
У меня есть MasterPage (MyBoxx.Master), ссылающийся на 2 пользовательских элемента управления:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MyBoxx.master.cs" Inherits="MyBoxxMaster" %>
<%@ Register TagPrefix="uc1" TagName="Header" Src="Header.ascx" %>
<%@ Register TagPrefix="uc1" TagName="Footer" Src="Footer.ascx" %>
Мой пользовательский элемент управления «Заголовок» содержит среди прочего окно поиска. Я хочу скрыть это окно поиска при посещении некоторых страниц. Поэтому я добавил логическое свойство в свой пользовательский элемент управления и использую это свойство при рендеринге пользовательского элемента управления, чтобы определить, отображать ли окно поиска или нет:
public partial class uxHeader : System.Web.UI.UserControl
{
bool _showSearch = true;
public bool ShowSearch
{
get { return _showSearch; }
set { _showSearch = value; }
}
[...]
protected void Page_Load(object sender, EventArgs e)
{
[...]
searchBox.Visible = _showSearch;
}
}
Затем я пытаюсь получить доступ к этому свойству "ShowSearch" со страницы содержимого:
((uxHeader)Page.Master.FindControl("Header1")).ShowSearch = false;
Проблема в том, что я получаю следующую ошибку при попытке компиляции:
Error 15 The type or namespace name 'uxHeader' could not be found (are you missing a using directive or an assembly reference?)
Дело в том, что я уверен, что он заставил его работать и компилировать в какой-то момент, так как он работает на ранее выпущенной рабочей версии. Но сейчас я делаю изменения на что-то еще на том же сайте, и не могу больше компилировать.
Из различных постов на SO я попытался добавить следующие строки на мою страницу контента aspx:
<%@ MasterType VirtualPath="~/MyBoxx.master"%>
<%@ Reference VirtualPath="~/MyBoxx.master" %>
Без какого-либо успеха! Я также видел некоторые ответы о жизненном цикле страницы, но здесь это не может быть проблемой, поскольку я получаю ошибку при компиляции, а не ошибку при выполнении.
Если у кого-нибудь есть какие-либо советы о том, как я могу исправить это навсегда, я был бы очень признателен.
Спасибо !