2012-04-16 4 views
0

У меня есть ярлык, который я поставить гиперссылку в с функцией:Получение текста между тегами анкерных

Private Sub showLink(title As String, cost As String, asin As String) 
    Label1.Text = (String.Format("<a href=\WebSite3\LinkDisplay.aspx?Title=" + System.Web.HttpUtility.UrlEncode(title) + "&Price=" + System.Web.HttpUtility.UrlEncode(cost) + "&ASIN=" & System.Web.HttpUtility.UrlEncode(asin) + " \>" + title + "/" + cost + "/" + asin + "</a>")) 
End Sub 

Я хочу, чтобы получить доступ к строке title + "/" + cost + "/" + asin для того, чтобы разделить его с String.Split("/").

Я получаю сообщение об ошибке, когда просто попробую Dim fields As String() = Label1.Text.Split("/").

Какую функцию я должен использовать, чтобы получить только текст, который находится между тегами <a>?

+0

Не могли бы вы подробнее рассказать о том, что вы пытаетесь сделать? – mreyeros

+0

У вас, похоже, уже есть четкие значения в вашем коде, где именно вы пытаетесь их разбить? – Oded

+0

Вы также говорите, что получаете ошибку - какая ошибка? – Oded

ответ

1

Прежде всего, вместо использования ярлыка используйте объект HyperLink. Вы можете установить его адрес, как это:

Private Sub showLink(ByVal title As String, ByVal cost As String, ByVal asin As String) 
    Dim link As String = System.Web.HttpUtility.UrlEncode(String.Format("WebSite3/LinkDisplay.aspx?Title={0}&Price={1}&ASIN={2}", title, cost, asin)) 
    HyperLink1.NavigateUrl = link 
    HyperLink1.Text = String.Format("{0}/{1}/{2}", title, cost, asin) 
End Sub 

Затем, вы можете прочитать значение строки запроса в URL, как так:

Private Sub GetLinkAttributes() 
    Dim url As New Uri("http://" & HttpUtility.UrlDecode(HyperLink1.NavigateUrl.ToLower)) 
    Dim fields As NameValueCollection = HttpUtility.ParseQueryString(url.Query) 
    Debug.Print(String.Format("{0}/{1}/{2}", fields("title"), fields("price"), fields("asin"))) 
End Sub 

Вы использовали обратную косую черту в примере кода, который может иметь сбросил ошибку, которую вы получали (исключение HttpRequestValidationException).

0

Прежде всего, для этого вам необходимо использовать элемент управления Literal, а не метку. Или, еще лучше, используйте некоторый тип управления связью.

Вы не добавили много деталей с первого раза, когда вы спросили об этом, но до тех пор, пока элемент управления является серверным, вы можете получить текст, используя Label1.Text.

После того, как у вас есть текст, вам все равно нужно разобрать часть, которую вы хотите. Это не настоящий трюк. Вам необходимо удалить те части текста, которые вас не интересуют.

Это последнее задание было бы далеким проще, если вы использовали какой-то тип управления ссылками, потому что вы могли просто посмотреть на значение текста ссылки.

+0

Как я могу использовать серверные элементы управления для получения Label1.Text? Это Server.HtmlDecode()? –

+0

Нет, вы делаете это на обратной стороне, ссылаясь на элемент управления из кода C#. –

+0

Я не совсем уверен, что вы имеете в виду ... –

Смежные вопросы