假设我必须在不使用MVC的项目中使用来自Dictionary
的数据填充无序列表。我确信ASP.Net爱好者会告诉我从代码隐藏中填充所有内容。
但是......我应该吗?
通过嵌入式代码:
<ul>
<% foreach (KeyValuePair<string, string> item in MyDictonary) { %>
<li><%= item.Key %>: <strong><%= item.Value %></strong></li>
<% } %>
</ul>
我同意它不是很干净,但是当我从我的方法直接编写HTML标记时,替代方案会更糟糕:
public void writeMyDictionary() {
StringBuilder sb = new StringBuilder();
sb.Append("<ul>");
foreach (KeyValuePair<string, string> item in MyDictonary) {
sb.AppendFormat("<li>{0}: <strong>{1}</strong></li>", item.Key, item.Value);
}
sb.Append("</ul>");
MyControl.Text = sb.ToString();
}
那么,为什么我要使用代码隐藏来填充我的所有控件?
答案 0 :(得分:3)
对于这个用例,在后面的代码中执行它没有特别的价值。
我宁愿使用标记版本而不是后面的代码,因为你发布了它们,但我很可能只是在Repeater
上使用数据绑定,因为这将是最干净的解决方案。
答案 1 :(得分:1)
您还可以考虑使用转发器控件http://msdn.microsoft.com/en-us/magazine/cc163780.aspx。
答案 2 :(得分:0)
对于维护此问题的人来说,这不太令人惊讶(例如,如果他们想要更改标记)?
代码隐藏可能不是他们看的第一个地方。