在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样式来改善这一点。

10-01 00:37