Мое решение, по нескольким причинам, в которые я сейчас не буду вдаваться, содержит несколько различных проектов веб-приложений ASP.NET, каждый из которых имеет несколько общих возможностей главной страницы.Для этого у меня есть отдельный проект библиотеки классов, на который ссылаются все проекты веб-приложений, в том числе класс BaseMasterPage, унаследованный от System.Web.UI.MasterPage.
Мое намерение состоит в том, чтобы все основныестраницы всех веб-приложений наследуются от BaseMasterPage, который отлично работает для обычных свойств и методов, но сейчас я пытаюсь добавить созданный мной серверный элемент управления в BaseMasterPage и отобразить его на реальных главных страницах, но я не знаю, каксделать свойство из BaseMasterPage, которое имеет элемент управления видимым на реальной главной странице, без большого количества уродливого кода.
У кого-нибудь есть идеи, как это сделать?
Если это поможет, этофрагмент моего BaseMasterPage (а HierarchicalMenu - мой пользовательский серверный элемент управления):
public class BaseMasterPage : MasterPage
{
private HierarchicalMenu _leftMenu;
public HierarchicalMenu LeftMenu
{
get
{
return _leftMenu;
}
set
{
_leftMenu = value;
}
}
}
Если я добавлю следующее на мою страницу Site.master, отобразится HierarchicalMenu, но это не объявление, объявленноесвойство в BaseMasterPage:
<%@ Master Language="C#" AutoEventWireup="true" Inherits="BaseMasterPage" %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body>
<form runat="server">
<cc1:HierarchicalMenu ID="LeftMenu" runat="server" MenuName="Left Menu" />
</form>
</body>
</html>
Что бы ясоюзнику нравится, что нет необходимости добавлять HierarchicalMenu прямо на мой Site.master, как я это делал там, и сделать так, как это было с BaseMasterPage.
Спасибо!