我有以下的剃刀語法MVC 3模型的foreach過濾
@{
foreach (var p in Model)
{
<b>@p.Age</b>
}
}
我想foreach循環過濾,僅看型號記錄,其中p.City =「紐約」
什麼我的語法看起來像什麼?
我希望我解釋這個權利。
感謝
我有以下的剃刀語法MVC 3模型的foreach過濾
@{
foreach (var p in Model)
{
<b>@p.Age</b>
}
}
我想foreach循環過濾,僅看型號記錄,其中p.City =「紐約」
什麼我的語法看起來像什麼?
我希望我解釋這個權利。
感謝
@foreach (var p in Model.Where(i => i.City == "New York")) {
<b>@p.Age</b>
}
,可能會決定做控制器動作這個過濾,這取決於你是否需要沒有一個城市的「紐約」的在您的視圖或不是其他型號的記錄。
您可以使用LINQ(http://msdn.microsoft.com/en-us/library/bb397896.aspx)擴展方法(如「Where」)來應用過濾器。你也不需要外部的「@ {}」,你可以在foreach前面加一個「@」,Razor會找出你的意思。例如:
@foreach (var p in Model.Where(item => item.City == "New York")) {
<b>@p.Age</b>
}
+1表示可以在控制器中完成過濾。我認爲控制器是適合這個的地方。它看起來不太適合這種觀點。 –
非常感謝 –
@Jamie - 我認爲這取決於(一如既往!)。這可能是因爲他們在City視圖中進行了一些分組,在這種情況下,它認爲通過視圖中未過濾的集合和過濾器發送是有意義的。另外,我們不知道這個集合是否是'IQueryable'並且延遲執行直到需要 –