Tro*_*hel 3 asp.net web-applications visual-studio-2010
当我的页面位于解决方案的主要级别时,菜单项href可以找到内容页面.当我将内容页面放在子文件夹中并分别更改href路径时,它找不到该页面.这似乎只是MasterPages的一个问题.我在这里错过了什么吗?我在'/'应用程序中收到错误服务器错误找不到资源HTTP 404.请求的URL:/Pages/Pages/Items.aspx
为什么它会在我的路径前添加另一个/ Pages?
解
Project
+Images
-Pages
Items.aspx
Library.aspx
+Styles
Default.aspx
Site.Master
Run Code Online (Sandbox Code Playgroud)
母版
<div id="tabdiv" class="tabdiv">
<ul id="tabmenu" class="tabmenu">
<li><a href="Pages/Items.aspx" class="separator">Items</a></li>
<li><a href="Pages/Library.aspx">Library</a></li>
</ul>
</div>
<div id="main" class="main">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
Run Code Online (Sandbox Code Playgroud)
简短回答,使用绝对路径(到站点的根目录)或使用~/将所有页面关联回站点根目录(后者在服务器位置更改之间更安全,更健壮).
推理?
/)链接中Pages/Items.aspx结合这两个:/Pages/Items.aspx.Pages/你现在重新引用同一目录时Pages/Items.aspx,你得到一个组合值/Pages/Pages/Items.aspx.如果要链接到项目,请查看Control.ResolveUrl方法.例如
<a href="<%= Page.ResolveUrl("~/Pages/Items.aspx") %>" class="separator">Items</a>
Run Code Online (Sandbox Code Playgroud)
现在,无论链接嵌入到哪个页面,它仍然会提供该资源的绝对路径(在本例中为Items.aspx).