When you put a PlaceHolder on your webpage and add stuff to it, asp.NET automatically adds a SPAN tag, which can be really annoying.
For example, say you have pieces of HTML code in a database and want to add them in different locations, you put a PlaceHolder in those locations to make sure you can add the HTML at runtime. However, say the HTML code is anything from <BODY> to </BODY> and .NET adds a SPAN tag around that, you would get illegal HTML in your output.
Many sites give a solution to enhance the functionality of the PlaceHolder by making your own PlaceHolder and customizing it in a User Control.
However, that is a little over the top.
Instead of using a PlaceHolder, try using a <asp:Literal> ... it will do just the same, without adding the SPAN tag. if you have the HTML code in a variable, here is an example on how to do it:
Literal lt = new Literal; // The literal control
String str = "<html>here</html>";
lt.Text = str;
This should not add any extra tags and make your HTML output compliant to the standards.