0

我无法让我的子页面获取主页面中定义的样式。这是我所做的:

  • Main.css我在我的应用程序的根目录中创建了一个样式表

    body {
        background-color:red;
    }
    
  • Site.Master我在Web 应用程序的根目录中创建了一个母版页

    <%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site.master.vb" Inherits="WebApplication1.Site" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
         <link href="Main.css" rel="stylesheet" />
    </asp:ContentPlaceHolder>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
        Master Page`
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    
        </asp:ContentPlaceHolder>
    </div>
    </form>
    </body>
    </html>
    

这在设计器中显示为红色背景

  • WebForm.aspx我在应用程序的根目录中创建了一个子页面

    <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="WebForm1.aspx.vb" Inherits="WebApplication1.WebForm1" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
          Child Page Contents
    </asp:Content>
    

但这不会在设计器中或运行时显示红色背景。当我查看源代码时,文件中没有 css 声明,但它正在拾取母版页,因为它显示“ Master Page Child Page Contents

4

2 回答 2

1

重组您的母版页,如下所示:

<%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Site.master.vb" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<link href="Main.css" rel="stylesheet" type="text/css" />
<title></title>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
    Master Page`
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

    </asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>

您需要在 head 标记中链接样式表,而不是 ContentPlaceHolder 之一。

于 2013-08-14T18:04:43.707 回答
0

替换这个

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>
    <asp:ContentPlaceHolder ID="head" runat="server">
    <link href="Main.css" rel="stylesheet" />
    </asp:ContentPlaceHolder>

   <html xmlns="http://www.w3.org/1999/xhtml">
   <head runat="server">
   <link href="Main.css" rel="stylesheet" />
   <title></title>
   <asp:ContentPlaceHolder ID="head" runat="server">
   </asp:ContentPlaceHolder>

指向您的 CSS 工作表的链接位于内容占位符内。

于 2013-08-14T18:20:02.193 回答