在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的后续内容,因为我对我接受的答案不满意,并且不相信自己提供了最佳解决方案。
最佳答案
如果您不限于使用纯表,那么这将为您工作。
<table class="table">
<tr>
<th>
Name<br/>
Item<br/>
</th>
<%
foreach (var item in Model)
{
%>
<td>
<%= Html.Encode(item.Name) %><br/>
<%= Html.Encode(item.company) %><br/>
</td>
<%
}
%>
</tr>
</table>
您绝对可以通过使用span和css样式来改善这一点。