2016-03-17 43 views
0

我正在尝试用两个ContentPlaceHolder部分创建一个Main.master页面。 当我加载默认页面,它只呈现ContentPlaceHolder1,我不得不实际加载Second.aspx看到第二个ContentPlaceHolder。为什么?从单独文件加载ContentPlaceHolders

在我Main.master我:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="Main" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder id="head" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <div> 
     <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"></asp:ContentPlaceHolder> 
     <asp:ContentPlaceHolder id="ContentPlaceHolder2" runat="server"></asp:ContentPlaceHolder> 
    </div> 
</body> 
</html> 

此外,我已经创建了两个附加页的Default.aspx和Second.aspx:

Detault: 

<%@ Page Title="" Language="C#" MasterPageFile="~/Main.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
     HOW HOW HOW HOW 
</asp:Content> 

其他页面

Second: 
<%@ Page Title="" Language="C#" MasterPageFile="~/Main.master" AutoEventWireup="true" CodeFile="Second.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 
    COW COW COW COW 
</asp:Content> 

它只渲染第一个PlaceHolder,我怎样才能拥有单独的内容文件并且同时具有渲染d在同一页上?

enter image description here

回答

0

你要问自己:如果您导航到Default.aspx的,如何将你的应用程序知道抢在Second.aspx的内容?简单地说:它不会。

首先,这里是ContentPlaceHolder上的MSDN

您可以根据需要在您的母版页上添加尽可能多的ContentPlaceHolders,每个页面可以渲染到这些内容区域或不渲染。

所以你的Default.aspx可以关注一下:

<%@ Page Title="" Language="C#" MasterPageFile="~/Main.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
     HOW HOW HOW HOW 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 
    COW COW COW COW 
</asp:Content> 

,你会得到你正在寻找的结果。

现在,你可以渲染一个OUTSIDE html文件INTO其中一个内容占位符(一种方式是JavaScript) - 但(如果我错了,请别人纠正我),不会有一个用ASPX网页来做到这一点,无论是否隐藏。

谈谈你的问题:

我怎么能有单独的内容文件,并已在这两个呈现在同一页面上?

你可能想看看这个: How to include a partial view inside a webform