ASP.NET继续从HEAD中删除属性

时间:2012-06-20 19:46:08

标签: 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>
        <head >
            <title></title>
            <asp:ContentPlaceHolder ID="HeadContent" runat="server">
            </asp:ContentPlaceHolder>
        </head>
        <body>
            ...
        </body>
    </html>
</asp:Content>

为什么ASP.NET会继续删除放入HEAD的属性?具体来说,我试图这样做:

<head runat="server">

如果我在HEAD中没有runat,则会收到以下错误:

Using themed css files requires a header control on the page. (e.g. <head runat="server" />). 

这是我的主人加载我上面的子母版页:

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

结果是asp:内容正在从html,head,body中删除属性。不仅仅是头脑。反正有没有阻止它?

3 个答案:

答案 0 :(得分:0)

您的主母版页看起来像这样?

 <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>

如果没有让你的主要主页看起来像我提供给你的这个代码。 在<link rel="stylesheet" type="text/css" href="my.css"/>之间<head>标记之间添加<asp:ContentPlaceHolder ID="head" runat="server"/> 为避免删除此内容。

另一个选项,即当您的aspx文件缺少MasterPagefileAutoEventWireup属性时,您的css可以消除每个回发的情况 例如:

  <%@ Page Title="" Language="C#" MasterPageFile="~/Page.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %>

修改 如果您的主PageMaster获得<head>标记,则无法像在代码中那样将另一个添加到同一页面中,您应该只添加内容

<asp:Content ID="content1" ContentPlaceHolderID="head" runat="server"/>放在aspx页上。

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

答案 1 :(得分:0)

我认为当你使用runat = server时,你需要给它一个ID,服务器将知道如何访问它

答案 2 :(得分:0)

好吧,我发现的工作是asp:内容只在您触发onSave事件时修改HTML。那么你做什么instad是进行编辑,然后不保存,但关闭VS2010程序,然后单击保存。这样,asp:content就没有机会修改你的代码。之后您可以重新打开该项目。