首次引入母版页时,您可以在header元素中创建ContentPlaceHolder。这实际上在编译器中有效,但在IDE中却没有,因此我不确定它是否是一个bug或支持或者是什么。因此,我在PageLoad中动态创建了脚本和样式之类的东西,这些东西适用于所有内容,但比使用没有母版页的head元素更省力。
我刚注意到ASP.NET 4 / Visual Studio 2008没有这个问题,ContentPlaceHolders即使在元素之外也能正常工作。有谁知道这是否得到支持,工作,可用和良好实践?
答案 0 :(得分:0)
是的,它运作正常。你可以把ContentPlaceHolders放在头部或身体里,我已经做了很多年了。
实际上在VS2010中,当您创建新的母版页时,它会自动将ContentPlaceHolder块放入文件中。所以我会假设它支持 。检查:
<%@ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
一些可能值得一读的链接(尽管我没有发现确认官方支持的内容):