HREF正在引用自己

时间:2015-10-24 13:32:41

标签: c# asp.net html5 href

我正在使用.NET4.5 C#/ ASP.NET构建一个App是VS Pro 2013。我也在使用Bootstrap.min.js和JQuery 2.1.4.in.js.

我为某组网页创建了一个文件夹结构。从根目录看起来像这样:

根目录/文件夹/文件夹/文件夹/ Default.aspx

我的页面上还有一个带有下拉菜单的导航栏。在下拉列表中,我已将HREF添加到网页文件夹结构中及其周围的其他页面。

我在下拉菜单中有两个链接引用网页,正如您所期望的那样使用HREF。

导航栏的代码如下:

<li class="dropdown"  >
                            <a class="dropdown-toggle" data-toggle="dropdown" style="cursor:pointer">Sites
                               <b class="caret"></b> 
                            </a>
                            <ul class="dropdown-menu">
                            <li><a href="#">View Site Dashboard</a></li>
                            <li><a href="#">View Site Reports</a></li>
                            <li class="divider"></li>
                            <li><a href="#">Set/Edit Site Targets</a></li>
                            <li class="divider"></li>
                            <li><a href="~/EMS/Sites/EditSite/Default.aspx">Edit Site Details</a></li>
                            <li><a href="~/EMS/Sites/Addsite/Default.aspx">Add Another Site</a></li>                               
                        </ul>
                    </li>

只有两个活动链接,我把其他链接拿出来,因为他们也在做同样的事情。

当我运行应用程序时,当我将鼠标悬停在下拉菜单上的链接上时,我看到的是 localhost:port#/ EMS / Sites / AddSite / ~EMS / Sites / Addsite / Default.aspx 实际应该是 localhost:port#/ EMS / Sites / AddSite / Default.aspx

它好像已经占用了aspx文件的当前位置,然后将HREF链接添加到它的末尾。由于这个位置不存在,所以它是404。

我尝试过将路径从相对路径改为绝对路径并混合使用东西,但它并不是一个快乐的兔子。

我也尝试过web.config和routeconfig.cs ......

任何人的想法,我以前从未遇到过这个!

2 个答案:

答案 0 :(得分:1)

任何以协议(例如http://)或/以外的任何内容开头的链接将被视为相对链接,即相对于当前页面。如果您希望链接相对于网站根目录,请使用/~/...

那就是说,根据你对你要做的事情的描述,我不确定你为什么要使用~;应该是#

答案 1 :(得分:0)

感谢Ed Cottrell让我走上正确的道路,可以这么说。

由于我在文件夹中嵌套的数量很多,我无法使用相对路径,并且嵌套很多。由于应用程序可能会移动并且仍处于预先制作阶段,因此我不想在所有HREF转移到prod或移动时更改它们,因此文件夹也是如此。因此,我将所有内容都移到了一个级别而不是嵌套网页所在的文件夹,因此网页都在他们自己的文件夹中。这意味着每个页面都有自己的文件夹,这意味着我不必为应用程序的这一部分更改内部HREF。

这允许我使用&#39; ../ Folder /&#39;。我还将IIS中的默认页面设置为default.aspx,因此我只需要引用该页面所在的文件夹。

如果我需要退出应用程序的这一部分,我将不得不提供协议(http://somesite/someotherfolder等)的完整参考。

我认为这是正确的......