Как мне указать, что я хочу, чтобы моя гиперссылка всегда была абсолютным путем? - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть эта ссылка кода, где я заполняю гиперссылку адресом во время выполнения из базы данных.

    <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 Ответ

1 голос
/ 15 апреля 2011

Вы можете попробовать что-то вроде этого

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...