ASP.NET不断从头部删除属性

ASP.NET不断从头部删除属性,asp.net,visual-studio-2010,Asp.net,Visual Studio 2010,我的asp.net子母版页设置如下: <asp:Content ID="MainContent" runat="server" ContentPlaceHolderID="mainContent"> <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html>

我的asp.net子母版页设置如下:

<asp:Content ID="MainContent" runat="server" ContentPlaceHolderID="mainContent">
    <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
    <html>
        <head >
            <title></title>
            <asp:ContentPlaceHolder ID="HeadContent" runat="server">
            </asp:ContentPlaceHolder>
        </head>
        <body>
            ...
        </body>
    </html>
</asp:Content>
<head runat="server">

...
为什么ASP.NET不断删除放在头部的属性?具体地说,我正试图做到这一点:

<asp:Content ID="MainContent" runat="server" ContentPlaceHolderID="mainContent">
    <!doctype html public "-//w3c//dtd xhtml 1.0 strict//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd">
    <html>
        <head >
            <title></title>
            <asp:ContentPlaceHolder ID="HeadContent" runat="server">
            </asp:ContentPlaceHolder>
        </head>
        <body>
            ...
        </body>
    </html>
</asp:Content>
<head runat="server">

如果头部没有runat,则会收到以下错误:

Using themed css files requires a header control on the page. (e.g. <head runat="server" />). 
使用主题化css文件需要在页面上设置标题控件。(例如)。
这是我的母版,加载上面的子母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.Master.cs" Inherits="HeadOffice.Site" %>
<asp:contentplaceholder id="MainContent" runat="server">
</asp:contentplaceholder>


结果是asp:Content正在从html、head和body中删除属性。不只是头。还有什么办法阻止它吗?

您的主页面是这样的

 <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>
</html>
编辑: 如果您的主
PageMaster
获得
标记,您不能像在代码中那样将另一个标记添加到同一页面,您应该通过

放在
aspx
页面上


如果有帮助,请告诉我:)

我认为当你使用runat=server时,你需要给它一个ID,这样服务器就会知道如何访问它。好的,我发现的解决办法是,如果你触发onSave事件,asp:content只会修改你的HTML。因此,instad所做的是进行编辑,然后不保存,而是关闭VS2010程序,然后单击“保存”。这样,asp:content将没有机会修改您的代码。之后您可以重新打开项目。

是的,但是我的母版页有母版页,不要问我为什么。为什么您需要
head
标记来
runat=“server”
?对于主题,如果没有,它会给我这个错误:使用主题css文件需要页面上的header控件。你能把另一个母版页给我看看吗?除非我能同时看到这两个页面,否则很难理解发生了什么。另一个母版页只有一个contentplaceholder,可以从该母版页获取内容:尝试它。它会在save.No上删除两个标记。我的主页面只是一个内容占位符。将html、头、体等全部加载到contentplaceholder的子母版页中。我无法更改此结构。@Yongke您使用嵌套母版页吗?还是你自己创造了这个结构?