在锚标签之间获取文本

时间:2012-04-16 18:40:07

标签: asp.net vb.net

我有一个标签,我将超链接放入函数:

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>标签之间的文字?

2 个答案:

答案 0 :(得分:1)

首先,使用HyperLink对象而不是使用标签。您可以像这样设置其URL:

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)。

答案 1 :(得分:0)

首先,您应该使用Literal控件来执行此操作,而不是标签。或者,更好的是,使用某种类型的链接控制。

自您第一次提出此问题以来,您还没有添加大量详细信息,但只要控件是服务器控件,您就可以使用Label1.Text获取文本。

获得文本后,仍然需要解析出所需的部分。这没有真正的诀窍。您需要删除您不感兴趣的文本部分。

如果您使用某种类型的链接控件,那么上一个任务将更简单,因为您只需查看链接文本值。