クリーンなマークアップを生成するために、私はよく次のようなコードを使用します。
<asp:Literal ID="ltItem" runat="server">
<li class="{0}"><a href="{1}">{2}</a></li></asp:Literal>
そして、コードビハインドで:
...
lt.Text = string.Format(lt.Text,
cssClass,
item.Url,
Server.HtmlEncode(item.Caption)
);
いくつかの利点は次のとおりです。
- クリーンなHTMLマークアップ、ASP.NetWebFormIDなどはありません
- 設計者は、開発者の介入なしにaspxに小さな変更を加えることができます
- コードはプリコンパイルされます(インラインコードまたはdatabindステートメントを使用するのではなく)
短所:
- やや不可解
- 壊れやすい-マークアップでパラメータが削除されると、string.Formatは例外をスローします
したがって、私の質問:
これは、クリーンなマークアップを生成するための一般的な方法ですか?より良い選択肢はありますか?データバインディング構文アプローチは望ましいですか?