将样式应用于母版页中的嵌套页面

Sam*_*ami 2 css asp.net master-pages site.master

为什么我无法在使用母版页的嵌套页面上应用样式?我只是尝试将简单的一些背面颜色应用于正文,并将一些div应用于单个页面.

我的(嵌套)页面Reservations.aspx有这个代码

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" 
AutoEventWireup="true" CodeFile="Reservations.aspx.cs" Inherits="Reservations" %>
<asp:Content runat="server" ContentPlaceHolderID="HeadContent">
    <link href="~/Styles/input.css" rel="stylesheet" type="text/css" />
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<div class="mainDiv">
........
</div></asp:Content>
Run Code Online (Sandbox Code Playgroud)

input.cs 有这个代码

body { background-color:Silver; }
.mainDiv { background-color:Blue; }
Run Code Online (Sandbox Code Playgroud)

Site.Master 有这个代码

<head runat="server">
<asp:ContentPlaceHolder ID="HeadContent" runat="server"></asp:ContentPlaceHolder>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /></head>
<body>.........
Run Code Online (Sandbox Code Playgroud)

Reservations.aspx只有当我将此颜色应用于我不想要的母版页时,我才能获得Silver Color作为背景.我无法从这个问题和教程的接受答案得到帮助.


<link..之前或之后使用可能会有所不同,感谢您的信息,但在这种情况下它没有做任何事情.我的问题解决后,我已经对它进行了两种测试.

指导ResolveUrl解决我的问题,因为我尝试使用pickurlvisual-studio 2010,而不是手动键入,并得到了这个网址Styles/input.css,而不是~/Styles/input.css.

我的问题解决了.怎么样?我告诉了,但为什么?我不能说.我曾经富尔德说~/Styles/Site.css,Styles/Site.css,Styles/input.css是正确的URL,但~/Style/input.css不正确.为什么?这仍然是开放的,它的答案肯定是真实和可接受的答案.

शेख*_*ेखर 6

您需要使用如下解析URL.

<%= ResolveUrl("~/")%>
Run Code Online (Sandbox Code Playgroud)

如下

<link href='<%= ResolveUrl("~/Styles/Site.css")%>'  rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

当你Master Page和你Content Page在同一个文件夹上工作时,母版页中的任何包含都可以工作.

但是当你Master PageContent Page它在不同的文件夹中时,它将找不到相同的样式表或java脚本文件,因为文件不在同一个文件夹中.

所以Resolve Url解析服务器上的url.