Ich stelle mir vor, dass dies auf persönliche Vorlieben zurückzuführen ist, aber welchen Weg würden Sie gehen?Welche Methode finden Sie besser lesbar, um dynamisches HTML auszugeben?
StringBuilder markup = new StringBuilder();
foreach (SearchResult image in Search.GetImages(componentId))
{
markup.Append(String.Format("<div class=\"captionedImage\"><img src=\"{0}\" width=\"150\" alt=\"{1}\"/><p>{1}</p></div>", image.Resolutions[0].Uri, image.Caption));
}
LiteralMarkup.Text = markup.ToString();
Vs.
StringBuilder markup = new StringBuilder();
foreach (SearchResult image in Search.GetImages(componentId))
{
markup.Append(String.Format(@"<div class=""captionedImage""><img src=""{0}"" width=""150"" alt=""{1}""/><p>{1}</p></div>", image.Resolutions[0].Uri, image.Caption));
}
LiteralMarkup.Text = markup.ToString();
Oder soll ich nicht zu tun dies und die Htmltextwriter Klasse statt mit?
EDIT: Einige wirklich gute Vorschläge hier. Wir sind auf 2.0 Rahmen so LINQ ist nicht verfügbar
Warum können Sie nicht einfach ASPX verwenden? –
Verwenden Sie immer HtmlTextWriter, um HTML zu schreiben, und abstrahieren Sie, was Sie aus der Logik schreiben, die es steuert. –
Unabhängig davon, welche Methode Sie verwenden, müssen Sie die URI und die Beschriftung Server.HtmlEncode() eingeben, bevor Sie sie in die Zeichenfolge ablegen, oder Sie haben HTML-Injektionslöcher, die zu einem potenziellen XSS führen. Jedes "gute" HTML-Template-System wird das für Sie tun ... aber beachten Sie, dass nicht alle "gut" sind ;-) – bobince