0

我刚从 asp.net 开始,并按照有关如何制作母版页的教程http://www.asp.net/web-forms/videos/进行操作。但是按照教程我仍然无法使其工作。我什至使用了视频中使用的相同模板。

我拥有的代码是通过 Visual Studio 的向导自动生成的。

更具体地说:我没有收到任何错误消息,只是一个带有 css 的普通页面,该页面来自我在教程中使用的模板。带有菜单的 div 和其余部分不显示在屏幕上。(应该首先写这个)

从母版页:

<asp:ContentPlaceHolder ID="MenuContentPlaceHolder" runat="server">
    <div id="header">
            <p> <a href="#">Link 1</a> . <a href="#">Link 2</a> . <a href="#">Link 3</a> . <a href="#">Link 4</a></p>
        </div>

        <div id="subheader">
                <p>Apple Core 1.0</p>
        </div>

        <div id="menu">
                <p><a href="#">Menu 1</a> <a href="#">Menu 2</a> <a href="#">Menu 3</a> <a href="#">Menu 4</a> <a href="#">Menu 5</a> <a href="#">Menu 6 </a></p>
        </div>
    </asp:ContentPlaceHolder>

从 default.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2.Default" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MenuContentPlaceHolder" runat="server">
    <br />
<h1>Hey</h1>
</asp:Content>

奇怪的是,当我从 default.aspx 中完全删除内容标签时,我似乎能够让菜单显示在屏幕上

4

2 回答 2

1

我认为你应该尝试这样的事情

您的母版页

<div id="header">
    <p> <a href="#">Link 1</a> . <a href="#">Link 2</a> . <a href="#">Link 3</a> . <a href="#">Link 4</a></p>
</div>

<div id="subheader">
    <p>Apple Core 1.0</p>
</div>

<div id="menu">
    <p><a href="#">Menu 1</a> <a href="#">Menu 2</a> <a href="#">Menu 3</a> <a href="#">Menu 4</a> <a href="#">Menu 5</a> <a href="#">Menu 6     </a></p>
</div>

<asp:ContentPlaceHolder ID="MenuContentPlaceHolder" runat="server">

</asp:ContentPlaceHolder>

**将菜单代码放在母版页内容占位符之外

你的 aspx 页面

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs"     Inherits="WebApplication2.Default" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MenuContentPlaceHolder" runat="server">
    <br />
<h1>Hey</h1>
</asp:Content>
于 2012-09-30T12:35:54.337 回答
0

我相信您正在做的是通过将 HTML 放入MasterPageContentPage的标签中来覆盖MasterPage 内容。这实际上是 MasterPage 概念的一个特征。如果您想要页面上的标准内容,但希望能够在某些页面上替换它,那么您将内容放在 PlaceHolder 中,并在应该有不同内容的页面上提供替换内容。(或者,您可以将其视为“如果 ContentPage 中未提供任何内容,则使用此默认内容。”)PlaceHolder

您对在删除内容标签时显示菜单的评论是因为您已删除用于替换 MasterPage 内容的自定义标签。如果在使用给定 MasterPage 的每个页面上都有一些您始终想要的内容,请将内容放在 MasterPage 中,而不是 PlaceHolder 中。

于 2012-09-30T12:31:13.703 回答