我有一个标签,我将超链接放入函数:
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 :(得分: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
获取文本。
获得文本后,仍然需要解析出所需的部分。这没有真正的诀窍。您需要删除您不感兴趣的文本部分。
如果您使用某种类型的链接控件,那么上一个任务将远更简单,因为您只需查看链接文本值。