仕事で ASP.NET Web アプリケーションを開発していますが、同じ問題が発生し続けています。
コード ビハインドからページに HTML を書き込みたい場合があります。たとえば、GET 変数 "view" の値に応じて出力が変化する Editor.aspx ページがあります。つまり、「Editor.aspx?view=apples」は「Editor.aspx?view=oranges」とは異なる HTML を出力します。
現在、この HTML を StringBuilder で出力しています。たとえば、リストを作成する場合は、次の構文を使用できます。
myStringBuilder.AppendLine("<ul id=\"editor-menu\">");
myStringBuilder.AppendLine("<li>List Item 1</li>");
myStringBuilder.AppendLine("</ul>");
問題は、この目的のために ASP.NET の List コントロールを使用したいということです。なぜなら、StringBuilder 構文の数行がコードの読みやすさを妨げているからです。ただし、ASP.NET コントロールは、一意の ID、インライン スタイル、およびインライン JavaScript の時折のブロックを含む複雑な HTML を出力する傾向があります。
私の質問は、一般的な HTML タグを表すだけの ASP.NET コントロールはありますか? つまり、次の例のようなコントロールはありますか。
HTMLTagControl list = new HTMLTagControl("ul");
list.ID = "editor-menu";
HTMLTagControl listItem = new HTMLTagControl("li");
listItem.Text = "List Item 1";
list.AppendChild(listItem);
ラッパーなどがあることは知っていますが、ASP.NET の複雑さを抑えるのではなく、最初からシンプルにすることから始めたいと思います。