获取列表中的所有值而不迭代它们

时间:2011-09-20 19:14:16

标签: asp.net-mvc-3

在我的控制器中,我将返回带有产品列表的View。

返回视图(ProductList)

在我看来,我希望获得产品列表 WITHOUT 的所有值,通过for循环或任何其他方式迭代它们。

我需要这样做,因为我将在视图中以不同的方式设计每个产品,并且我不能为每个循环使用a

第一个productId可以使用 Model.Firstordefault()。ProductId 。同样,我可以获得productName,productDescription等。

但是如何在列表中获得第二个productId到第n个productId?

由于 ARNAB

1 个答案:

答案 0 :(得分:1)

这是显示模板的绝佳选择。在您的强类型视图中:

@model IEnumerable<ProductViewModel>
<table>
    <thead>
        <tr>
            <th>Id</th>
            <th>Name</th>
            <th>Description</th>
        </tr>
    </thead>
    <tbody>
        @Html.DisplayForModel()
    </tbody>
</table>

然后定义一个显示模板,该模板将自动为集合的每个元素(~/Views/Shared/DisplayTemplates/ProductViewModel.cshtml)呈现:

@model ProductViewModel
<tr>
    <td>@Html.DisplayFor(x => x.Id)</td>
    <td>@Html.DisplayFor(x => x.Name)</td>
    <td>@Html.DisplayFor(x => x.Description)</td>
</tr>

Templated helpers按惯例工作,您永远不必在视图中编写任何循环。