2013-05-08 3 views
6

У меня есть шаблон для Html-страницы, и мне нужно динамически добавлять его содержимое в ASP.NET. Мне также нужно сделать много примеров шаблона, в зависимости от данных.Как получить сгенерированную форму HTML HtmlGenericControl

Очевидно, что создание большого Html-файла с использованием строк очень грязно. Поэтому я решил сгенерировать свой Html с помощью HtmlGenericControl. И я сделал это. Но Я не могу получить сгенерированный Html как строку из него.

Его просто добавить эти элементы управления на страницах ASP.NET и получить визуализацию, но мне нужен их Html.

Если его невозможно, есть ли другой структурированный способ генерации Html ... ???

+1

Это один для UserControl, но это могло помочь в вашем случае? : http: //stackoverflow.com/questions/288409/how-do-i-get-the-html-output-of-a-usercontrol-in-net-c –

+0

Он работал человеком ... большое вам спасибо. .. :) –

ответ

20

Trick рассказал @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() 
Смежные вопросы