もう 1 つの利点は、HtmlTextWriter を使用すると、コードをよりクリーンな (より保守しやすい) 方法でフォーマットできることと、HtmlTextWriter が HTML のエンコードを自動的にサポートすることです。比較:
writer.AddAttribute(HtmlTextWriterAttribute.Id, "someId");
if (!string.IsNullOrEmpty(cssClass)) writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass);
writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "Red");
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.WriteEncodedText(text);
writer.RenderEndTag();
対:
StringBuilder html = new StringBuilder();
html.Append("<span");
html.Append(" id=\"someId\"");
if (!string.IsNullOrEmpty(cssClass)) html.AppendFormat(" class=\"{0}\"", HttpUtility.HtmlAttributeEncode(cssClass));
html.Append(">");
html.Append(HttpUtility.HtmlEncode(text));
html.Append("</span>");
2 番目の例のコードは、別の、おそらくよりクリーンな方法で記述できると主張する人もいるかもしれませんが、これは基本的に 1 つの標準的な書式設定方法を強制するため (これによりメンテナンスが改善されます)、HtmlTextWriter の利点と見なすことができます。
編集:実際、2 番目のスニペットで間違いを犯したため、戻って応答を修正する必要がありました。これは、私が言いたかった点を確認します。