8

I have a template for Html page, and I need to add its contents dynamically in ASP.NET. I also need to make many instences of template page, depending in data.

Its obvious that creating large Html using strings is very dirty way. So I choosed to generate my Html using HtmlGenericControl. And i made it. But I cant get the generated Html as string from it.

Its simple to add these controls in ASP.NET pages and get rendered, but I need their Html.

If its not possible, is there any other structrued way of generating Html...???

1

2 Answers 2

22

Trick told by @Bartdude worked like a charm...

For other peoples, solution goes in this way...

// 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();       
    }
}

Hope this helps for coming readers...:)

Sign up to request clarification or add additional context in comments.

Comments

2

And here is the same code in VB:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.