【发布时间】:2009-09-26 06:50:15
【问题描述】:
我正在编写我的第一个包含母版页的 ASP.NET Web 应用程序。但是,即使我似乎按书使用它们,但在运行项目时,母版页似乎不起作用。
我已经创建了一个 Default.MasterPage 精简版:
<%@ 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>
和(默认.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" 的内容。 有谁知道我为什么会出现这种行为,或者我在这里做错了什么? 提前致谢!
【问题讨论】:
标签: asp.net master-pages