我是ASP.Net的新手。实际上是ASP时期的新手。如果非常明显,请原谅我的无知。
我过去常常在Master页面中使用我的代码,但是如果ContenPlaceHolder中的文本被替换为提供的页面,则会更改它。
<head Runat="server">
<title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
<asp:ContentPlaceHolder ID="stylesheets" Runat="server">
<link rel="stylesheet" type="text/css" href="s/main.css" />
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="scripts" Runat="server">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</asp:ContentPlaceHolder>
</head>
它产生了:
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="s/main.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</head>
现在,当我将其更改为此时,它决定解决我的href
属性。
<head Runat="server">
<title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
<link rel="stylesheet" type="text/css" href="s/main.css" />
<asp:ContentPlaceHolder ID="stylesheets" Runat="server"></asp:ContentPlaceHolder>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<asp:ContentPlaceHolder ID="scripts" Runat="server"></asp:ContentPlaceHolder>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</head>
和
<head Runat="server">
<title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
<link rel="stylesheet" type="text/css" href="./s/main.css" />
<asp:ContentPlaceHolder ID="stylesheets" Runat="server"></asp:ContentPlaceHolder>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<asp:ContentPlaceHolder ID="scripts" Runat="server"></asp:ContentPlaceHolder>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</head>
成了
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="masters/s/main.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</head>
现在,经过对这里和我的书中的一些阅读后,我想出了这个也是不对的。
<head Runat="server">
<title><asp:ContentPlaceHolder ID="title" Runat="server"></asp:ContentPlaceHolder></title>
<link rel="stylesheet" type="text/css" href="~/s/main.css" />
<asp:ContentPlaceHolder ID="stylesheets" Runat="server"></asp:ContentPlaceHolder>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<asp:ContentPlaceHolder ID="scripts" Runat="server"></asp:ContentPlaceHolder>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</head>
制作人:
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="../s/main.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script type="text/javascript" src="js/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="js/slideshow.js"></script>
</head>
文件夹设置如下:
/masters/normal-page.master
/index.aspx #uses normal-page.master
现在,问题是如何禁用此行为或让它生成href="s/main.css"
或同等产品?是的,显而易见的解决方案是将normal-page.master
移动到根目录,但我不喜欢混乱根文件夹。
另外,如果我使用了原件并且页面为页面中的占位符提供了一些东西,那么占位符标签之间的文本会被替换还是会被附加? (这本书似乎假设我知道这一切。)
此外,我没有使用Visual Studio,也不会因为我无法证明成本合理。我正在使用Notepad ++。
答案 0 :(得分:2)
有一种ResolveUrl
方法可以让这很简单。试试这个,看看它是否对你有帮助:
<link href="<%= ResolveUrl("~/s/main.css")%>" rel="stylesheet" type="text/css" />
一些额外的阅读:Control.ResolveUrl Method