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>我应该使用什么函数来获取标签之间的文本?

4

2 回答 2

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

于 2012-04-16T20:42:28.667 回答
0

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

自从你第一次问这个问题以来,你还没有添加很多细节,但只要控件是服务器控件,你就可以使用Label1.Text.

一旦你有了文本,你仍然需要解析出你想要的部分。这没有真正的诀窍。您需要删除您不感兴趣的文本部分。

如果您使用某种类型的链接控件,最后一项任务会简单得多,因为您可以只查看链接文本值。

于 2012-04-16T18:49:14.360 回答