<asp:ContentPlaceHolder>
パーサーエラーは、ASPXページのルート以外のものを配置していることが原因である可能性があります。
を使用している場合は、MasterPageの先頭にある必要がありますMasterPageFile
。<!DOCTYPE
これは、MasterPageの開始時に権利を持っていない限り<asp:ContentPlaceHolder>
、そこに入れることができます<!DOCTYPE
。
詳しくは
は<!DOCTYPE
常にHTMLファイルの最初のものである必要があるため、通常、MasterPageは次のようになります...
<%@ Master Language="VB" CodeBehind="MyMaster.master.vb" Inherits="dev.MyMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html>
<head>
<asp:ContentPlaceHolder runat="server" id="myHeader"/>
</head>
<body>
<form id="form1" runat="server">
<asp:ContentPlaceHolder runat="server" id="myBody"/>
</form>
</body>
</html>
何らかの理由でページ指定のドキュメントタイプが必要な場合は、最初に新しいプレースホルダーをデフォルト値で追加できます...
<%@ Master Language="VB" CodeBehind="MyMaster.master.vb" Inherits="dev.MyMaster" %>
<asp:ContentPlaceHolder runat="server" id="myDocType">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
</asp:ContentPlaceHolder>
<html>
...
</html>
次に、オーバーライドするページに次のように入力します(オーバーライドしないことで、代わりに元のページが出力されます)...
<%@ Page Language="vb" MasterPageFile="MyMaster.master" Codebehind="MyPage.aspx.vb"
Inherits="dev.MyPage" Title="My Page" %>
<asp:Content runat="server" ContentPlaceHolderId="myDocType">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
</asp:Content>
...