如何在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
迭代所有元素,但在这种情况下需要访问特定的元素。
答
您可以使System.Linq为您的目的工作,但我强烈建议不要这样做。
您将使用ElementAt
多次迭代您的收藏。随着你的收藏增长,表现会很糟糕。
你会好得多使用foreach循环和跟踪自己的索引(请原谅剃刀语法,如果它是一个有点关):
@{ var counter = 0; }
@foreach(var kvp in @Model.content)
{
@if(counter > 0){
<li class="bullet">
@kvp.Value
</li>
}
@{ counter++; }
}
这一个是MVC3,但它可能仍然具有现实意义:http://stackoverflow.com/questions/5896842/using-system-data-linq-in-a-razor-view – valverij 2013-04-29 16:27:26