Переход на внешний URL из поля шаблона gridview

#c# #asp.net

#c# #asp.net

Вопрос:

Мне нужно перейти из существующего местоположения в какое-либо другое местоположение. Например, если мое приложение запущено на localhost, и я хочу перейти на Youtube. Сценарий:

У меня есть сетка, в которой полем шаблона является asp: гиперссылка. Мне нужно добавить изображение, и, нажав на это изображение, я перейду на youtube.

 <a id="Download" href='<%#ResolveUrl(Eval("Path").ToString()) %>' 
    title="Download>>" style="color: #FFFFFF; font-size: 9pt">
<img src="~/images/dl.gif" style="border:0px; height:22px; width:22px" 
    alt="Download"  runat="server"/></a> 
<asp:HyperLink runat="server" ID="HyperLink1" 
    NavigateUrl='<%# ResolveUrl(Eval("YouTubeUrl").ToString()) %>'>
<img src="~/images/yt.gif" style="border:0px; height:22px; width:22px" 
    alt="Play on You tube" runat="server" /></asp:HyperLink>
  

Я хочу перейти в какое-то другое местоположение за пределами текущего местоположения из текущего местоположения.

Комментарии:

1. это дает URL что-то вроде этого localhost/abc.aspx/www.youtube.com

Ответ №1:

Используйте это

 <a id="Download" href='<%#ResolveUrl(Eval("Path").ToString()) %>' 
    title="Download>>" style="color: #FFFFFF; font-size: 9pt">
<img src="~/images/dl.gif" style="border:0px; height:22px; width:22px" 
    alt="Download"  runat="server"/></a> 
<asp:HyperLink runat="server" ID="HyperLink1" 
    NavigateUrl='<%# Eval("YouTubeUrl").ToString().Contains("http://")?Eval("YouTubeUrl"):"http://" Eval("YouTubeUrl").ToString() %>'>
<img src="~/images/yt.gif" style="border:0px; height:22px; width:22px" 
    alt="Play on You tube" runat="server" /></asp:HyperLink>
  

Ответ №2:

Вы должны использовать что-то вроде этого:

 <asp:HyperLink runat="server" ID="HyperLink1" 
    NavigateUrl='<%# string.Format("http://{0}", Eval("YouTubeUrl").ToString()) %>'>
  

Если в начале будет два http: //, измените его на это:

 <asp:HyperLink runat="server" ID="HyperLink1" 
    NavigateUrl='<%# Eval("YouTubeUrl").ToString() %>'>
  

Из того, что вы опубликовали, неясно, нарушает ли его вызов ResolveUrl или ваш URL-адрес YouTube содержит протокол в начале.