HREF 正在引用自身

HREF is referencing itself

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

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

根目录Dir/Folder/Folder/Folder/Default.aspx

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

我在下拉菜单中有两个 link 引用网页,就像您期望使用 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>

只有两个活跃的link,我把其他的都去掉了,因为他们也在做同样的事情。

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

就好像它获取了 aspx 文件的当前位置,然后将 HREF link 添加到它的末尾。由于此位置不存在,因此它是 404。

我试过将路径从相对路径更改为绝对路径,并进行了混淆,但它不是一只快乐的兔子。

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

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

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

也就是说,根据您对您尝试执行的操作的描述,我完全不确定您为什么使用 ~;那可能应该是 #.

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

由于我的文件夹中有大量的嵌套,我无法使用相对路径,因为有那么多嵌套。由于应用程序可能会四处移动并且它仍处于预生产阶段,所以我不想在它进入生产阶段或移动时更改所有 HREF,因此更改文件夹。因此,我将所有内容上移了一个级别,而不是嵌套网页所在的文件夹,因此网页都在它们自己的文件夹中。这意味着每个页面都有自己的文件夹,这意味着我永远不必为应用程序的这一部分更改内部 HREF。

这让我可以使用“../Folder/”。我还在 IIS 中将我的默认页面设置为 default.aspx,所以我只需要引用页面所在的文件夹。

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

我觉得是的...