Импортировать главную страницу в другую главную страницу в ASP.NET

Можно ли сделать так, чтобы одна эталонная страница просто включала другую эталонную страницу?

У меня есть три главные страницы, которые сходятся по содержанию, и я хочу, чтобы 2 из них указывали на третью, чтобы контент не реплицировался, а оставил их, чтобы они могли легко измениться в будущем, если им придется .


person AlexH    schedule 17.06.2009    source источник


Ответы (1)


Да, то, что вам нужно, называется вложенными мастер-страницами. Просто установите MasterPageFile в директиве <%@ Master %> дочерних главных страниц на родительскую.

Main.Master:

<%@ Master Language="C#" %>

.... shared content ....
<asp:ContentPlaceHolder ID="C" runat="server" />

Первый. Мастер:

<% Master Language="C#" MasterPageFile="Main.Master" %>

<asp:Content runat="server" ContentPlaceHolderID="C">
   .... Some content ....
   <asp:ContentPlaceHolder ID="AnotherPlaceholder" runat="server" />
</asp:Content>

Второй. Мастер:

<% Master Language="C#" MasterPageFile="Main.Master" %>

<asp:Content runat="server" ContentPlaceHolderID="C">
   .... Some other content ....
   <asp:ContentPlaceHolder ID="AnotherPlaceholder" runat="server" />
</asp:Content>
person mmx    schedule 17.06.2009
comment
Должны ли ContentPlaceHolder, определенные на странице Main.Master, быть доступными для страниц содержимого, которые используют First или Second.Master в качестве своей главной страницы? - person AlexH; 18.06.2009
comment
@AlexH: Это не будет напрямую доступно. Если вы хотите распространить его на страницу: ‹asp: Content ContentPlaceHolderID = ID runat = server› ‹asp: ContentPlaceHolder runat = server ID = ID /› ‹/ asp: ContentPlaceHolder›. Страница будет видеть только ContentPlaceHolders, указанные непосредственно на ее главной странице. - person mmx; 18.06.2009