【发布时间】:2011-03-02 00:54:30
【问题描述】:
在 ASP.Net MVC 中有什么方法可以将以下代码压缩为单个 foreach 循环?
<table class="table">
<tr>
<td>
Name
</td>
<%
foreach (var item in Model)
{
%>
<td>
<%= item.Name %>
</td>
<%
}
%>
</tr>
<tr>
<td>
Item
</td>
<%
foreach (var item in Model)
{
%>
<td>
<%= item.Company %>
</td>
<%
}
%>
</tr>
</table>
model 是IEnumerable<SomeObject>:
public class SomeObject
{
public virtual Name {get;set;}
public virtual Company {get;set;}
}
这将输出如下表格:
Name | Bob | Sam | Bill | Steve |
Company | Builder | Fireman | MS | Apple |
我知道我可以使用扩展方法来写出每一行,但是是否可以使用模型上的单次迭代来构建所有行?
这是question 的后续内容,因为我对接受的答案不满意,不敢相信我提供了最佳解决方案。
【问题讨论】:
-
AFAIK 在给定条件的单个循环中是不可能的。不过问题很好:)
-
您是否考虑过使用除表格之外的其他构造?在这种情况下,这对我来说没有意义。除了 IE6 和 7,CSS
display: table-cell/table-row可能值得研究作为替代。所以没有表中的表:)
标签: asp.net-mvc model-view-controller model foreach