带有超链接的ASP.NET页面标记

时间:2013-02-01 14:12:18

标签: c# asp.net

我对超链接的页面标记有疑问。我在aspx页面上有一个表单视图,它在后面的代码中绑定了一个数据表。我在aspx页面上有一些控件,它们在标记中获取绑定到它们的数据。我有一个超链接控件,需要在text属性中绑定一个字段(我想出来)和一个字段绑定到它的超链接propoerty(我需要帮助)。我得到的页面有点接受标记,但当它点击链接时,链接以某种方式被破坏。

另外,我可以不使用导航网址属性导航到外部网址吗?说,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>

任何想法?

1 个答案:

答案 0 :(得分:0)

  

另外,我可以不使用导航网址属性导航到外部网址吗?说,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>

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