【问题标题】:ASP.NET 4.6, Web address gets appended in address bar rather than being rewrittenASP.NET 4.6,网址被附加在地址栏中,而不是被重写
【发布时间】:2018-07-17 23:52:02
【问题描述】:

我正在创建一个新网站;但是,这是我第一次遇到这个问题。向前导航时,我可以很好地到达我想要的页面,但除非我使用后退按钮,否则我无法向后导航。如果单击导航链接,则会收到 HTTP 404 错误:

只有当我导航到解决方案中的另一个文件夹并尝试退出该文件夹时,才会出现这种情况。我尝试在锚链接前使用适当数量的 ../ 来返回。我尝试使用 ~/ 和 ~/ 以及适量的 ../ 来导航。这些都不起作用。但是,如果页面位于同一文件夹中,则导航工作正常。似乎只有当我在文件夹之间导航时才会发生这种情况。

该网站尚未发布,所以我只使用 IIS Express 使用 Chrome、Firefox、IE 和 Edge 进行调试。

请帮我解决这个问题。

【问题讨论】:

  • 使用与站点根目录相关的/path/to/page~/ 应该解析到根目录的路径,但有时会失败。 ../../ 是最糟糕的方式。没有斜线 (default.aspx) 的地址是相对于 referrer URL
  • 感谢您的意见。它确实帮助我找到了问题。所以我遇到的问题之一是 ~ 不起作用。每次我使用它时,它都会将我想去的页面附加到栏中当前地址的末尾,如下所示:localhost:xxx/Divisions/~/Default,所以我永远无法返回。这些页面位于同一个目录中,这真的让我很震惊。解决方法是我只需要使用 / 而不使用 ~ 来获取我想要的页面。现在完美运行。感谢您的帮助。

标签: c# asp.net navigation visual-studio-2017 navigationbar


【解决方案1】:

我不得不在我的一本大学教科书中查找这一点,但这里有三种方法可以编写相对于根目录的路径:

  1. 以斜杠开头

    href="/Styles/Order.css" rel="stylesheet"

  2. 在服务器控件中使用波浪号 (~) 运算符

    asp:Image ID="Image1" runat="server" ImageUrl="~/Images/banner.jpg"

  3. 对 HTML 元素使用波浪号运算符和 ResolveURL 方法

    img src='' alt="图片描述"

参考:Murach 的 ASP.NET 4.6 Web Programming with C# 2015 6th Edition

我希望这对以后的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多