使用母版页在子文件夹中的Webform

时间:2013-11-20 18:57:42

标签: c# asp.net webforms

目前我的所有网络表单文件(.aspx)都在我项目的根文件夹中(VS 2012)。

我创建了一个新的文件夹名称“ pages ”,并使用母版页向其添加新的网络表单(WebForm1)。当我运行这个页面时,它的地址是localhost:49217 / pages / WebForm1.aspx这是正确的,问题是:

  • 现在所有链接都添加了“ pages ”这个词,例如正确的链接应该是localhost:49217 / Contact.aspx现在变为:localhost:49217 / 网页 /Contact.aspx

  • CSS看起来很奇怪,遗漏了一些css文件(路径错误)。

母版页中的CSS代码,css文件位于 css 文件夹中:

<link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/grid.css" type="text/css" media="screen">

如果我在根文件夹中添加一个新的webform,一切都很好,但如果我在子文件夹中这样做,一切都搞砸了。

修改

  1. CSS已修复,感谢大家。

  2. 页面”仍然没有修复,它被添加到(母版页的)所有链接中

2 个答案:

答案 0 :(得分:9)

在母版页内引用样式表或java脚本文件时,我通常会执行以下操作:

<link href="<%= ResolveUrl("~/css/reset.css") %>" rel="stylesheet" />
<script type="text/javascript" src='<%= ResolveUrl("~/js/master.js") %>'></script>

如果您在本地调试,部署到虚拟目录中的Web服务器或部署到网站根目录,这将有效。

答案 1 :(得分:6)

您的路径是相对于当前目录的,您需要在它们前面添加斜杠,以便它们始终引用根目录。像这样:

<link rel="stylesheet" href="/css/reset.css" type="text/css" media="screen">
<link rel="stylesheet" href="/css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="/css/grid.css" type="text/css" media="screen">

您还必须对图像路径执行相同的操作。