为了生成干净的标记,我经常求助于使用类似这样的代码:
<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.Net WebForm id 等
- 设计人员可以在 aspx 中进行微小的修改,而无需开发人员干预
- 代码是预编译的(而不是使用内联代码或数据绑定语句)
缺点:
- 有点神秘
- 脆弱 - 当在标记中删除参数时,string.Format 会引发异常
因此我的问题:
这是生成干净标记的常用方法吗?有更好的选择吗?数据绑定语法方法更可取吗?