【问题标题】:Using multiple contentPlaceHolders in ASP.NET masterpage在 ASP.NET 母版页中使用多个 contentPlaceHolders
【发布时间】:2012-08-24 05:33:47
【问题描述】:

我正在创建一个在不同页面中有不同菜单的网站。所以我正在创建一个母版页,其中包含 3 个内容占位符,分别用于页面标题、菜单和内容。我无法为此母版页创建内容页。任何帮助,将不胜感激。如果我是新手,如果我没有遵循正确的指导方针,请原谅我。

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="PTS.Master.cs" Inherits="PTS.UI.Site1" %>

<!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>Patient Tracker System</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />
    <style type="text/css">
        .style1
        {
            font-size: small;
        }
    </style>
</head>
<body>
<section id = "main>
 <asp:ContentPlaceHolder ID="ContentPlaceHolderMain" runat="server">
    <form id="form1" runat="server">
    <div id="wrapper">
    <div id="page">
        <div id="page-bgtop">
            <div id="page-bgbtm">
                <div id="content">
                   <!-- Enter Your Contents Here-->
                    <asp:ContentPlaceHolder ID="ContentPlaceHolderContent" runat="server">
                    </asp:ContentPlaceHolder>
                </div>
                <!-- end #content -->
                <div id="logo">
                    <h1 class="style1"><a href="#">Patient Tracker System</a></h1>
                    <br />
                    <br />
                     <asp:ContentPlaceHolder ID="ContentPlaceHolderPageHead" runat="server">
                    </asp:ContentPlaceHolder>

                </div>
                <div id="sidebar">

                    <%--Paste your Customized Menus--%> 
                    <asp:ContentPlaceHolder ID="ContentPlaceHolderMenu" runat="server">
                    </asp:ContentPlaceHolder>
                </div>
                <!-- end #sidebar -->
                <div style="clear: both;">&nbsp;</div>
            </div>
        </div>
    </div>
    <!-- end #page -->
</div>
<div id="footer">
    <p>Copyright (c) 2012 Patient Tracker System.</p>
</div>
<!-- end #footer -->
    </form>
     </asp:ContentPlaceHolder>
    </section>
</body>
</html>

【问题讨论】:

  • 你不需要添加这个占位符&lt;asp:ContentPlaceHolder ID="ContentPlaceHolderMain" runat="server"&gt;

标签: asp.net master-pages contentplaceholder


【解决方案1】:

母版页上ContentPlaceHolder 中的任何内容都是默认内容。 “默认内容”的意思是,如果您没有在子页面上为 ContentPlaceHolder 指定内容,则将呈现默认内容。这对于在某些情况下减少代码重复很有用。

但是,您将整个 &lt;form&gt; 包裹在 ContentPlaceHolderMain 中,这不是一个好的模式。

您的母版页看起来基本正确,但您可能希望删除 ContentPlaceHolderMain 开始和结束标记。

那么您将留下您在问题中提到的 3 个ContentPlaceHolders。

另外,您的评论块中有一个错字:

<%--Paste your Customized Menus--%>

应该改为:

<!-- Paste your Customized Menus -->

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多