HtmlGenericControl("br") rendering twice

adripanico picture adripanico · Nov 21, 2012 · Viewed 7k times · Source

I'm adding some content to a given web page from code behind. When I want to add a break after some text, I try to do that this way:

pDoc.Controls.Add(New Label With {.Text = "whatever"})
pDoc.Controls.Add(New HtmlGenericControl("br"))

,where pDoc is the Panel in which I'm adding the content. But it adds two br tags into the final HTML.

I've avoid this behaviour this way:

pDoc.Controls.Add(New Label With {.Text = "whatever" & "<br />"})

Anyway, I'm so curious and I want to know why

pDoc.Controls.Add(New HtmlGenericControl("br"))

is acting that way. I also think my approach is not too fancy.

Regards,

Answer

Berkay Turancı picture Berkay Turancı · Feb 4, 2013

Actually you can use;

pDoc.Controls.Add(new LiteralControl("<br/>"));

Whereas new HtmlGenericControl("br") adds two <br>, this will only add <br/> tag to your HTML so that you just have 1 space line. In this picture I added those breaks with that code block.

enter image description here

Also similar question here: Server control behaving oddly