Это очень простой пример главной страницы ASP.NET.Главная страница отображает 4 гиперссылки и имеет два элемента управления ContentPlaceholder.Первые две ссылки - на страницы контента, которые будут отображаться в ContentPlaceHolder1, вторые две ссылки - на страницы контента, которые будут отображаться в ContentPlaceHolder2.
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site1.master.cs" Inherits="ProofOfConcept.Site1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>
Demo site
</h1>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/HeadContent1.aspx">Head Content 1 in ContentPlaceHolder1</asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/HeadContent2.aspx">Head Content 2 in ContentPlaceHolder1</asp:HyperLink>
<asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl="~/MainContent1.aspx">Main Content 1 in ContentPlaceHolder2</asp:HyperLink>
<asp:HyperLink ID="HyperLink4" runat="server" NavigateUrl="~/MainContent2.aspx">Main Content 2 in ContentPlaceHolder2</asp:HyperLink>
<br />
<div style="border: 1px dotted blue;">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
This is default text for ContentPlaceholder1
</asp:ContentPlaceHolder>
</div>
<br />
<div style="border: 1px dotted red;">
<asp:ContentPlaceHolder ID="ContentPlaceHolder2" runat="server">
This is default text for ContentPlaceholder2
</asp:ContentPlaceHolder>
</div>
</div>
</form>
</body>
</html>
Все четыре страницы контента выглядят так:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.master" AutoEventWireup="true" CodeBehind="MainContent1.aspx.cs" Inherits="ProofOfConcept.MainContent1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceholder2" runat="server">
This is text from MainContent1 in ContentPlaceholder2
</asp:Content>
... с соответствующими настройками идентификатора ContentPlaceholder.Другими словами, каждая страница содержимого содержит только один элемент управления Content, связанный с элементом ContentPlaceHolders на главной странице.
Если я создаю сайт и загружаю, например, HeadContent1.aspx (первая ссылка), отображается только содержимое HeadContent1 (плюс разметка с главной страницы, очевидно).Если щелкнуть третью ссылку, отобразится содержимое во втором ContentPlaceHolder, но первый заполнитель вернется к своей разметке по умолчанию.
Все это выглядит так, как задумано и, несомненно, очень полезно во многих сценариях, ноЯ бы хотел сделать так, чтобы два ContentPlace держателя обновлялись независимо друг от друга.Работать как старомодные фреймы HTML, более или менее?Возможно ли это, или я должен использовать какой-то другой элемент управления (или другую настройку вместо Master / Content)?