Итак, я подключаю свой первый MasterPage, и все работает отлично, кроме одной вещи. Это устаревшее приложение, и у меня есть старый класс BasePage, который наследуют все мои страницы контента. Он наследуется от System.Web.UI.Page, но сам по себе не имеет содержимого (нет файла .aspx). Он запускает кучу меню аутентификации пользователя / предоставления роли. Я хочу сохранить эту функциональность, но использовать ее, чтобы установить элементы управления на моей MasterPage для создания меню. Я не могу понять, как ссылаться на свойства MasterPage без объявления MasterType на странице содержимого.
Мой класс MasterPage называется NIMS_Master, и у меня есть следующее (просто пытаюсь начать):
public partial class NIMS_Master : System.Web.UI.MasterPage
{
public string MenuList { get; set; }</p>
<pre><code> protected void Page_Load(object sender, EventArgs e)
{}
}
С объявлением MasterType на одной из моих страниц контента:
<br>
<%@ MasterType VirtualPath="~/NIMS_Master.master" %>
Я могу получить доступ к своей собственности в Login.aspx.cs следующим образом:
this.Master.MenuList = "this is the menu list";
Но в моем BasePage.cs мне некуда поместить объявление MasterType. Все поиски в Google показывают, что я должен разыграть свой класс NIMS_Master в качестве Мастера, но я не могу заставить его работать, чтобы спасти мою жизнь. Я пробовал несколько разных вещей, но мой класс NIMS_Master просто не отображается в BasePage.
((this.Master)NIMS_Master).MenuList = "This is a menu list";
BasePage.cs находится в моем каталоге App_Code, а мой файл MasterPage находится в корне приложения, если это имеет значение.