子页面不会从Master中选取样式

时间:2013-08-14 17:53:07

标签: asp.net css webforms master-pages

我无法让我的子页面选择我的母版中定义的样式。这是我做的:

  • 我在应用

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

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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表的链接位于内容占位符内。