我的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中删除属性。不仅仅是头脑。反正有没有阻止它?
答案 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
文件缺少MasterPagefile
或AutoEventWireup
属性时,您的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就没有机会修改你的代码。之后您可以重新打开该项目。