PŁOMIENIE NA!
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;
Prawdopodobnie zostanę za to zlekceważony, ale jako były projektant, który musiał poprawić HTML w kodzie, zanim naprawdę wiedziałem dużo o .NET, powyższy kod był znacznie łatwiejszy do zrozumienia niż metody abstrakcyjnego tworzenia HTML. Jeśli uważasz, że projektant może kiedykolwiek potrzebować poprawić kod HTML, użyj prostych ciągów takich jak ten.
Coś, co widzę, że wielu deweloperów tęskni za pisaniem HTML w kodzie, polega na tym, że w HTML dozwolone są pojedyncze lub podwójne cudzysłowy dla atrybutów. Zamiast więc uciekać od wszystkich cytatów w kodzie (które dla niezainicjowanych wyglądają dziwacznie jak diabli), po prostu użyj pojedynczych cudzysłowów dla cudzysłowów HTML w swoich ciągach.
W PORZĄDKU. Ci wszyscy, którzy cię nienawidzą, łączą cię ze mną. Oto „właściwy” sposób na zrobienie tego bez łączenia łańcuchów, ale podtrzymuję moją opinię, że każda normalna strona z normalnymi tabelami nie przedstawi żadnych problemów z wydajnością poza jakąś śmieszną skalą podobną do 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();