页面不会在asp.net 3.5中加载母版页

时间:2012-09-30 12:02:12

标签: asp.net

我刚开始使用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>

<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

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

关于在删除内容代码时显示菜单的评论是因为您删除了正在替换MasterPage内容的自定义标记。如果您在使用给定MasterPage的每个页面上有总是想要的某些内容,请将内容放在MasterPage中,但不要放在PlaceHolder中。