我是ASP.Net的新手,我想创建一个非常简单的表单,它绑定到母版页但没有成功。这是我的母版页代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>
<body>
<form runat=server>
<asp:ContentPlaceHolder ID="MainContent" runat="server">
<body>
<table width=100% border=1 style="background:black" >
<tr>
<td width=20%></td>
<td width=80%><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></td>
<td width=20%></td>
</tr>
</table>
</body>
</asp:ContentPlaceHolder>
</form>
</body>
</html>
我的网页代码是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<asp:Content ContentPlaceHolderID=HeadContent runat=server>
</asp:Content>
<asp:Content ID="MainContent" runat=server ContentPlaceHolderID=MainContent >
</asp:Content>
但是母版页中的hte表没有出现在页面中。你能帮我解决这个问题吗?
答案 0 :(得分:3)
首先,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<asp:Content ContentPlaceHolderID=HeadContent runat=server>
</asp:Content>
<asp:Content ID="MainContent" runat=server ContentPlaceHolderID=MainContent >
</asp:Content>
完全错了。
DOCTYPE
应列在主人中。其次:
<asp:Content ID="HContent" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="MainContent" runat="server" ContentPlaceHolderID="MainContent" >
</asp:Content>
会更符合您的意图。但是你的风格中存在一个缺陷,这是严格意义上的风格:
<asp:Content ID="HContent" ContentPlaceHolderID="HeadContent" runat="server" >
</asp:Content>
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContent" runat="server" >
</asp:Content>
注意我如何在两个标签上放置runat="server"
?总是把它放在最后,这样可以更容易确保你把它放在正确的位置。或者,始终在ID
<asp:ContentPlaceHolder ID="MainContent" runat="server">
<body>
<table width=100% border=1 style="background:black" >
<tr>
<td width=20%></td>
<td width=80%><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></td>
<td width=20%></td>
</tr>
</table>
</body>
</asp:ContentPlaceHolder>
如果您在母版页中有此内容,则当子页面实现此部分时,ContentPlaceHolder
的内容将不会显示。您需要移动主页ContentPlaceHolder
声明之外的那些。这个概念非常“或者是”,而且没有其他观点的余地。它是故意这样编写的。
也许你想要:
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
<body>
<table width=100% border=1 style="background:black" >
<tr>
<td width=20%></td>
<td width=80%><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></td>
<td width=20%></td>
</tr>
</table>
</body>
答案 1 :(得分:2)
您是否在@Page指令中指定母版页?
例如:
<%@ Page Language="C#" MasterPageFile="~/MasterPages/Master1.master" Title="Content Page"%>