如何在ASP.NET Razor MVC4视图中使用LINQ?

问题描述:

我有一个ASP.NET Razor MVC4视图,其顶部有以下@using声明,在页面中包含LINQ如何在ASP.NET Razor MVC4视图中使用LINQ?

@using System.Linq 

然后我有一个循环,我想访问System.Collections.Generic.Dictionary object (@Model.content)的内容的特定元素。在这种情况下,

元素1->最后。

@for (int i = 1; i < @Model.content.Count; i++) 
    { 
     <li class="bullet"> 
      @Model.content.ElementAt(i) 
     </li> 
    } 

我收到以下错误。

'System.Collections.Generic.Dictionary' 不 包含定义 '的ElementAt'

什么我需要做的,利用LINQ在此Razor视图?

我知道我可以使用foreach迭代所有元素,但在这种情况下需要访问特定的元素。

+0

这一个是MVC3,但它可能仍然具有现实意义:http://*.com/questions/5896842/using-system-data-linq-in-a-razor-view – valverij 2013-04-29 16:27:26

您可以使System.Linq为您的目的工作,但我强烈建议不要这样做。

您将使用ElementAt多次迭代您的收藏。随着你的收藏增长,表现会很糟糕。

你会好得多使用foreach循环和跟踪自己的索引(请原谅剃刀语法,如果它是一个有点关):

@{ var counter = 0; } 

@foreach(var kvp in @Model.content) 
{ 
    @if(counter > 0){ 
     <li class="bullet"> 
      @kvp.Value 
     </li> 
    } 
    @{ counter++; } 
}