如何将母版页分配给现有的.aspx页面?

时间:2010-02-16 13:59:14

标签: .net asp.net

如何将母版页分配给现有的.aspx页面?

5 个答案:

答案 0 :(得分:15)

将此添加到现有的aspx页面声明:

MasterPageFile="~/SomeMasterPage.Master"

还应该提到,要向页面添加页面特定内容,您还需要将任何内容标记(在母版页中定义)添加到您的aspx页面中:

 <asp:Content ID="myContent" ContentPlaceHolderID="someContent" runat="server">

      // Page Content goes here

 </asp:Content>

如果您不插入这些内容,则会改为使用母版页中的默认内容。

答案 1 :(得分:4)

当将现有的.aspx页面分配给母版页时,网页的所有基本元素现在都存在于母版页中,如头部,正文,标题等。因此,如果您的页面使用这些元素就像给出标题一样到网页,在标签中定义javascripts ......现在所有这些操作都需要在母版页上完成。但是,如果您需要在子页面级别为这些元素分配相应的值,则需要在母版页的head标记中定义内容占位符。另一个内容占位符应放在母版页的主体内。

在子页面上,您将拥有两个内容占位符,一个用于头部,另一个用于身体。之后,您需要将相关代码放在相应的内容持有者中。

答案 2 :(得分:2)

在aspx页面中使用页面级指令:

<%@ page language="C#" masterpagefile="~/Default.Master" codebehind="..." inherits="..." title="..." %>

答案 3 :(得分:0)

所有这些答案都非常出色,尤其是HotTester!

我想强调在将现有的aspx页面转换为内容页面时的细节:删除html和head标签及其内容除了body标签之外的内容 - 删除body标签但保留其内容 - 删除表单标签但保留其内容。正如这里所解释的Convert ASPX pages to content pages?。然后将该内容放在子页面上的正文的内容占位符中。

如果head标记中的内容必须保留在内容页面中而不是放在母版页中,请删除head标记但保留其内容并将内容放在母版页头标记的内容占位符中

答案 4 :(得分:0)

  1. 将新的母版页添加到您的项目中。
  2. 打开您现有的.aspx页面。
  3. 将HTML标记从移到末尾。
  4. 将HTML标记从移到末尾。
  5. 将MasterPageFile =“ MasterPage.master”添加到“ @ Page”指令。
  6. 直接在“ @ Page”指令下方添加,其中“ ContentPlaceHolderID1”是您在母版页中定义的ID:。
  7. 添加到脚本文件的底部。

MasterPage.master:

    <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
        </asp:contentplaceholder>
    </div>
    </form>
</body>
</html>

Default.aspx:

    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    Content goes here
</asp:Content>

希望这会有所帮助 谢谢...