2013-04-29 128 views
3

我有一個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://stackoverflow.com/questions/5896842/using-system-data-linq-in-a-razor-view – valverij 2013-04-29 16:27:26

回答

3

您可以使System.Linq爲您的目的工作,但我強烈建議不要這樣做。

您將使用ElementAt多次迭代您的收藏。隨着你的收藏增長,表現會很糟糕。

你會好得多使用foreach循環和跟蹤自己的索引(請原諒剃刀語法,如果它是一個有點關):

@{ var counter = 0; } 

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