2013-04-25 49 views
0

我想添加一個HtmlAnchor到.ascx控件。到目前爲止,我有這樣的代碼:從C#添加'HtmlAnchor'

private void SetPhoneNumber() 
    { 
     HtmlAnchor htmlAnchor = new HtmlAnchor(); 
     const string spanTag = @"<span class=""icon phone"">m</span>"; 
     string anchor = spanTag + Context.CurrentPhoneNumber(); 
     htmlAnchor.InnerText = anchor; 
     Controls.Add(htmlAnchor); 
    } 

這不是解決我的目的,它的表現是這樣的:

Instead of span it needs to show a phone icon.

當它應該在HTML渲染,它應該看起來像這個:

<a href="tel:888.444.4444" class="phone"><span class="icon phone">m </span>888.444.4444</a> 

任何人都可以幫我解決這個問題嗎?

+0

作爲一個方面的問題 - 爲什麼不這樣做的實際控制模板,<%= %>避免的String.Format和潛在的凌亂硬編碼的字符串,處理不明確的html編碼? – rgripper 2013-04-25 20:32:08

回答

1

設置錨標記的InnerHtml

HtmlAnchor htmlAnchor = new HtmlAnchor(); 
const string spanTag = @"<span class=""icon phone"">m</span>"; 
string anchor = spanTag + Context.CurrentPhoneNumber(); 
htmlAnchor.InnerHtml = anchor; 
Controls.Add(htmlAnchor); 
+0

數字不應該跨越範圍。 Span元素是靜態的。呈現時,它應該看起來像這樣:m888.882.3837 Coder 2013-04-25 20:34:37

+0

@Coder啊我看,檢查我的編輯。 – mattytommo 2013-04-25 20:36:42

+0

謝謝mattytommo。它的作品就像一個魅力! – Coder 2013-04-25 20:54:24

1

變化的innerText到innerHTML的

private void SetPhoneNumber() 
{ 
    HtmlAnchor htmlAnchor = new HtmlAnchor(); 
    const string spanTag = @"<span class=""icon phone"">m</span>"; 
    string anchor = spanTag + Context.CurrentPhoneNumber(); 
    htmlAnchor.InnerHtml = anchor; 
    Controls.Add(htmlAnchor); 
}