如何将母版页分配给现有的.aspx页面?
答案 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)
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>
希望这会有所帮助 谢谢...