【问题标题】:How to create a hyperlink a new ASP.NET web form in a Webapplication如何在 Web 应用程序中创建新的 ASP.NET Web 表单的超链接
【发布时间】:2018-05-29 14:46:08
【问题描述】:

我正在尝试向 ASP.NET Web 应用程序添加一个新的 Web 表单。然而,当我从我的主页添加一个超链接时,我得到一个 IIS 错误。我在本地主机上运行它,即我自己的机器没有网络服务器。超链接是:

<a href = "~/Products">Products</a>

我有一个产品文件夹和一个 products.aspx 文件。 我的解决方案资源管理器窗口:

这是我得到的 IIS 错误:

【问题讨论】:

  • 下次请考虑将图片直接添加到问题中

标签: asp.net webforms


【解决方案1】:

"~/Products" 指向一个目录而不是一个文件,因此您的 IIS 抱怨它不允许显示目录的内容。

改为指向文件

<a href = "/Products/products.aspx">Products</a>

【讨论】:

  • 是的!这行得通!谢谢你。但是,如果我将 Products.aspx 放在主目录中,并将其链接到~/Products.aspx,它仍然显示禁止错误。而且,所有其他文件都链接为~/Contacts,而不引用带有“.aspx”扩展名的文件名。
  • 确保您的其他资源、没有 .aspx 的引用不像 MVC 路由或其他不需要扩展的资源。
【解决方案2】:

我了解到您将 Products.aspx 页面移至您网站的根目录,但您无法显示该页面。

尝试用这个替换现有的代码。并确保包含 runat="server"。

<a runat="server" href = "~/Products">Products</a>

【讨论】:

    【解决方案3】:

    您还需要添加 runat="server" 来解析动态起始位置。

    <a href = "~/Products/products.aspx" runat="server">Products</a>
    

    这是必需的,以便 ASP.NET CLR 引擎可以在交付最终 HTML 代码之前动态更新路径。

    【讨论】:

    • 真的吗?你不使用网络表单吗?如果你想使用“~”,你必须使用 runat="server" 属性来使 ~ 符号解析到你的本地主机。否则,ASP.NET 会将 ~ 硬编码到 URL 中。
    • 是的,成功了!抱歉,我在编译时 VS 崩溃了。我没有注意到 Firefox 没有任何变化,并认为它不起作用。
    • 太棒了!如果这个答案对你有帮助,你能把这个问题标记为有用吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 2014-08-04
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多