¡LLAMA EN!
var html = "";
html += "<table class='colorful'>";
foreach(var item in collection) {
html += "<tr>";
html += "<td class='boldCell'>" + item.PropWhatever + "</td>";
// more cells here as needed
html += "</tr>";
}
html += "</table>";
placeholder1.InnerHtml = html;
Probablemente me rechazarán por esto, pero como ex diseñador que tuvo que ajustar HTML en el código antes de que realmente supiera mucho sobre .NET, el código anterior fue mucho más fácil de entender que los métodos que abstraen la creación de HTML. Si crees que un diseñador podría tener que modificar tu HTML, usa cadenas simples como esta.
Algo que veo que muchos desarrolladores pierden cuando escriben HTML en código es que en HTML, se permiten comillas simples o dobles para los atributos. Por lo tanto, en lugar de escapar de todas las comillas en el código (que parece no estar bien para los no iniciados), solo use comillas simples para las comillas html dentro de sus cadenas.
MULTA. Todos los que odian a los concatenantes están atacando a mi representante. Aquí está la forma 'adecuada' de hacer esto sin concatenación de cadenas, pero mantengo mi opinión de que cualquier página normal con tablas normales no presentará ningún problema de rendimiento fuera de una escala ridícula similar a Google:
var sb = new System.Text.StringBuilder();
sb.Append("<table class='colorful'>");
foreach (var item in collection)
{
sb.Append("<tr>");
sb.Append("<td class='boldCell'>" + item.PropWhatever + "</td>");
// more cells here as needed
sb.Append("</tr>");
}
sb.Append("</table>");
placeholder1.InnerHtml = sb.ToString();