2013-05-08 30 views
6

我有一個Html頁面的模板,我需要在ASP.NET中動態地添加它的內容。我還需要根據數據製作很多模板頁面的聲明。如何獲得生成的Html表格HtmlGenericControl

很明顯,使用字符串創建大型HTML是非常骯髒的方式。所以我選擇使用HtmlGenericControl來生成我的Html。我做到了。但我不能得到生成的Html作爲字符串從它

它很容易在ASP.NET頁面中添加這些控件並獲得渲染,但我需要它們的Html。

如果它不可能,是否還有其他任何生成Html的結構化方式......?

+1

這一個是對用戶控件,但可以把它在你的情況下幫助嗎? :http://stackoverflow.com/questions/288409/how-do-i-get-the-html-output-of-a-usercontrol-in-net-c – 2013-05-08 13:56:20

+0

它工作的人...非常感謝你。 .. :) – 2013-05-09 04:33:55

回答

20

把戲@Bartdude告訴工作就像一個魅力...

對於其他國家的人民,去解決這樣...

// create you generic controls 
HtmlGenericControl mainDiv = new HtmlGenericControl("div"); 
// setting required attributes and properties 
// adding more generic controls to it 
// finally, get the html when its ready 
StringBuilder generatedHtml = new StringBuilder(); 
using (var htmlStringWriter = new StringWriter(generatedHtml)) 
{ 
    using(var htmlTextWriter = new HtmlTextWriter(htmlStringWriter)) 
    { 
     mainDiv.RenderControl(htmlTextWriter); 
     output = generatedHtml.ToString();  
    } 
} 

希望這有助於爲未來的讀者... :)

1

這裏是VB中的相同代碼:

Dim generatedHtml As New StringBuilder() 
    Dim htw As New HtmlTextWriter(New IO.StringWriter(generatedHtml)) 
    mainDiv.RenderControl(htw) 
    Dim output As String = generatedHtml.ToString()