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

C# 使用母版页的子文件夹中的Webform,c#,asp.net,webforms,C#,Asp.net,Webforms,目前,我的所有web表单文件(.aspx)都位于我的项目(VS 2012)的根文件夹中 我创建了一个新文件夹名“页面”,并使用母版页向其中添加了一个新的webform(WebForm1)。当我运行这个页面时,它的地址是localhost:49217/pages/WebForm1.aspx,这是正确的,问题是: 所有链接现在都添加了单词“页面”,例如,正确的链接应该是localhost:49217/Contact.aspx,现在变成了:localhost:49217/页面/Contact.asp

目前,我的所有web表单文件(.aspx)都位于我的项目(VS 2012)的根文件夹中

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

  • 所有链接现在都添加了单词“页面”,例如,正确的链接应该是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,一切都很好,但如果我在子文件夹中这样做,一切都会一团糟

编辑:

  • 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">
    
    
    

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

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

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

    如果您在本地进行调试,部署到虚拟目录中的web服务器,或者部署到网站根目录,这将起作用。

    告诉我们您在母版页中引用CSS文件的位置。@IrishChieftain:我添加到问题中,这就是你需要的吗?我同意LilBiggs02的说法,将页面添加到URL是正常的。现在CSS看起来不错,但“页面”仍然添加到所有链接中。你有什么想法吗?谢谢你的建议。你能帮我的“页面”部分,它已经被添加到所有的链接(主)请尝试上面的代码。如果您将子页面移动到不同的子文件夹中,它将起作用。尝试了您的代码,它修复了CSS,但链接仍然被添加到“页面”上。例如,母版页菜单上的所有链接(产品|服务|联系人…)都变成了:…/pages/Product或…/pages/contact@RonaldinhoState-这就是asp.net的工作原理。url映射到特定的文件位置。由于产品位于pages子文件夹中,这就是您看到url的原因。如果要更改url,请签出asp.net路由。