2013-08-27 31 views
0

我在vb.net中添加了代碼中的超鏈接。我想生成如下鏈接:http:// localhost:8010/CardExplorer.aspx?nc = 2013 + BC + 100「target =」_ blank「> 2013 BC 100 但是,我用下面的代碼沒有顯示雙引號。請有人告訴我正確的代碼。提前致謝。超鏈接中沒有雙引號

Dim searchlink As New HyperLink 
searchlink.Text = cn 
searchlink.Attributes.Add("href", ConfigurationManager.AppSettings("Search") & Server.UrlEncode(cn) & """" & " target=" & """" & "_blank") 
         e.Item.Cells(6).Controls.Add(searchlink) 

另外我用Chr(34)代替使用「」「」,結果與下面相同。

<a href="http://localhost:8010/CardExplorer.aspx?nc=2013+BC+2566&quot; target=&quot;_blank">2013 BC 2566</a></td> 
+0

控制它應該會自動逃避你,當你使用'加()'方法引號。你也需要爲每個屬性使用'add()'。 –

回答

0

您正在使用一個Attributes.Add()調用來添加所有屬性。正因爲如此,它假設您想要href屬性中的所有內容,並且正確編碼引號和類似字符以避免生成無效的HTML。試着改變你的代碼看起來像這樣:

Dim searchlink As New HyperLink 
searchlink.Text = cn 
searchlink.Attributes.Add("href", ConfigurationManager.AppSettings("Search") & Server.UrlEncode(cn)) 
searchlink.Attributes.Add("target", "_blank") 
e.Item.Cells(6).Controls.Add(searchlink) 
+0

不客氣,但我真的認爲你應該使用Gonzix的解決方案。他更優雅,並使用該對象的現有屬性。 – Adrian

1

爲什麼你不只是使用超鏈接屬性?

Dim searchlink As New HyperLink 
searchlink.NavigateUrl = "http://foo.com" 
searchlink.Target = "_blank" 

甚至更​​好,加上設計時

<asp:HyperLink id="hyperlink1" ImageUrl="images/pict.jpg" NavigateUrl="http://www.microsoft.com" Text="Microsoft Official Site" Target="_blank" runat="server"/>  
+0

我其實比你更喜歡你的迴應。嘗試在輸入一個大拇指時創建一個連貫的答案,站在使用iPhone的搖擺列車上讓生活變得很困難,所以我沒有時間查看超鏈接對象並建立與現有屬性的連接。 – Adrian

+0

我知道這種感覺......我正在度假並使用移動設備......呃......沒有它那麼舒適;) – Gonzix