我正在编写包含母版页的第一个ASP.NET Web应用程序。然而,即使我似乎在书中使用它们,在运行项目时,母版页似乎不起作用。
我创建了一个Default.MasterPage lite:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Default.master.cs" Inherits="TimeTracker.Default" %>
<!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>My new pager</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<asp:ContentPlaceHolder ID="PageHeader" runat="server">
</asp:ContentPlaceHolder>
</tr>
<tr>
<asp:ContentPlaceHolder ID="Navigation" runat="server">
</asp:ContentPlaceHolder>
</tr>
<tr>
<asp:ContentPlaceHolder ID="Main" runat="server">
</asp:ContentPlaceHolder>
</tr>
<tr>
<asp:ContentPlaceHolder ID="Footer" runat="server">
</asp:ContentPlaceHolder>
</tr>
</table>
</div>
</form>
</body>
</html>
两个内容页面如下: (PageHeader.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PageHeader.aspx.cs" Inherits="TimeTracker.PageHeader" MasterPageFile="~/Default.Master" Title="Header"%>
<asp:Content ID="Header" ContentPlaceHolderID="PageHeader" runat="server">
Enalog Time-Tracker
</asp:Content>
和(Default.aspx)
<%@ Page Language="C#" MasterPageFile="~/Default.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TimeTracker._Default" Title="Login"%>
<asp:Content ID="LoginPage" ContentPlaceHolderID="Main" runat="server">
Login page
</asp:Content>
但是在运行项目时,MasterPage不会在内容页面中编译,即使我相信我已正确连接它们。因此,如果我运行Default.aspx,我只看到来自ContentPlaceHolderID =“Main”的内容,如果我运行PageHeader.aspx,我只看到ContentPlaceHolderID =“PageHeader”中的内容。 有谁知道我为什么会这样做,或者也许我在这里做错了什么? 提前谢谢!
答案 0 :(得分:2)
您需要将两个部分放在内容页面中,如下所示:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PageHeader.aspx.cs"
Inherits="TimeTracker._Default" MasterPageFile="~/Default.Master"
Title="Login"%>
<asp:Content ID="HeaderContent" ContentPlaceHolderID="PageHeader" runat="server">
This is my header
</asp:Content>
<asp:Content ID="MainContent" ContentPlaceHolderID="Main" runat="server">
My main page content is here.
</asp:Content>
您可能不需要“标题”页面。
答案 1 :(得分:0)
您的母版页不包含任何&lt; td&gt;标签,因此表格没有任何可显示的内容。