我无法让我的子页面选择我的母版中定义的样式。这是我做的:
我在应用
的根目录中创建了样式表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
”
答案 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表的链接位于内容占位符内。