如何指定我希望我的超链接始终是绝对路径?

时间:2011-04-15 02:08:16

标签: asp.net html url

我有这个代码链接,我在运行时从数据库填充一个带有地址的超链接。

    <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" 
NavigateUrl='<%#Eval("Source") %>'><%#Eval("Source") %></asp:HyperLink>

问题在于它将链接视为相对链接。所以,如果链接是yahoo.com,它将转到

http://localhost/yahoo.com

或者那种效果。

如果我的链接来源为http://www.yahoo.com,那将会有效,但我不能保证这些链接在开头可能有也可能没有http://。

如何让它始终将其视为绝对URL。

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情

NavigateUrl='<%# GetUrl(Eval("Source")) %>'>

public string GetUrl(object source)
{
    if(source != null)
    {
        string str = source.ToString();
        return str.StartsWith("http://", StringComparison.InvariantCultureIgnoreCase) ?
                           str : 
                           string.Format("http://{0}",str);
    }  
    return string.Empty;
}