2011-04-15 44 views
0

我有这个代码链接,我在数据库中用运行时地址填充一个超链接。如何指定我希望我的超链接始终是绝对路径?

<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

你可以尝试这样的事情

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; 
} 
相关问题