【问题标题】:ASP.NET Page Markup with Hyperlink带有超链接的 ASP.NET 页面标记
【发布时间】:2013-02-01 14:12:17
【问题描述】:

我对超链接的页面标记有疑问。我在 aspx 页面上有一个表单视图,它在后面的代码中绑定了一个数据表。我在 aspx 页面上有一些控件,它们在标记中获取绑定到它们的数据。我有一个超链接控件,它需要在文本属性中绑定一个字段(我想通了)和一个在超链接属性中绑定到它的字段(我需要帮助)。我让页面在某种程度上接受了标记,但是当它单击链接时,该链接不知何故被破坏了。

另外,我可以不使用导航 URL 属性导航到外部 URL 吗?比如说,WWW.ESPN.COM?我认为这是问题所在......

<asp:HyperLink runat="server" ID="lnkCustom" NavigateUrl='<%#DataBinder.Eval(Container.DataItem, "WebCustomHyper")%>' Target="_blank" CssClass="weblinks">
                                <%# DataBinder.Eval(Container.DataItem, "WebCustomHyperDesc")%></asp:HyperLink>

有什么想法吗?

【问题讨论】:

  • 另外,我不能使用导航 URL 属性导航到外部 URL 吗?比如说,WWW.ESPN.COM?我认为这是问题所在......
  • 客户端 HTML 中呈现的链接是什么?如果 URL 是 "www.espn.com",那么它将在当前网站上查找名为 "www.espn.com" 的资源,因为没有指示它是新 URL。您需要将其改为 "http://www.espn.com"
  • 你就是那个男人。很简单。谢谢。
  • 很高兴它奏效了 :) 我会继续并把它变成一个答案,以帮助未来的访问者解决这个问题。

标签: c# asp.net


【解决方案1】:

另外,我不能使用导航 URL 属性导航到外部 URL 吗?比如说,WWW.ESPN.COM?我认为这是问题所在......

确实,这很可能是问题所在。这取决于呈现的客户端标记的外观。假设为了争论,该页面位于http://www.example.com/page.aspx。然后如果链接看起来像这样:

<a href="www.espn.com">click here</a>

单击它将尝试将用户带到:

http://www.example.com/www.espn.com

这当然行不通。这是因为值www.espn.com 本身并没有告诉浏览器它应该去一个不同的位置。就浏览器而言,您完全有可能在服务器上有一个名为 www.espn.com 的文件。

为了正确引导它,您需要完全限定 URL。这基本上意味着您需要预先添加协议前缀。更像是这样的:

<a href="http://www.espn.com">click here</a>

这将修复链接并将用户引导到正确的目的地。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多