仅在foreach语句中显示10个项目

dun*_*ika 0 c# asp.net-mvc razor

我的应用程序中有以下剃刀代码.我怎么能拥有它所以它只从模型中的10个项目.所以一旦它为我的模型中的10个项目完成了下面的代码,它就会停止

 @foreach (var item in this.Model.Leaderboard) {
    <tr>
        <td>@Html.DisplayFor(modelItem => item.userName)</td>
        <td> @Html.DisplayFor(modelItem => item.score)</td>   
    </tr>
}
Run Code Online (Sandbox Code Playgroud)

emr*_*azi 7

你可以使用Take()Linq的方法.

@foreach (var item in this.Model.Leaderboard.Take(10)) 
{
     <tr>
         <td>@Html.DisplayFor(modelItem => item.userName)</td>
         <td> @Html.DisplayFor(modelItem => item.score)</td>
     </tr>
}
Run Code Online (Sandbox Code Playgroud)

正如Henk Holterman建议的那样,如果您不需要整个集合,则应将集合限制在创建集合的位置,而不是在视图中.

MSDN 在这里参考.

  • 是的,但更好的是将Take()放在控制器代码中. (5认同)