2012-02-14 26 views
1

我在視圖頁面上返回了不少行。我想要展示幾張表格,每張表格都是完整結果的子集。我有一個foreach循環,我想知道我是如何篩選結果,因此「ResponseCode> 400」和「ExtFlag = 1」在MVC3視圖頁面顯示數據子集

@foreach (var res in Model.LinkCheckerResults)<br> 
{ 
    <tr> 
    <td> 
     @Html.DisplayFor(model => res.SourceURL)<br> 
    </td> 
    <td> 
     @Html.DisplayFor(model => res.TargetURL) 
    </td> 
    <td> 
     @Html.DisplayFor(model => res.Response) 
    </td> 
</tr> 
} 

非常感謝。

回答

2

假設ResponseCodeExtFlag是什麼LinkCheckerResults回報的成員,你可以做到這一點,你通常會在foreach環路C#。

使用LINQ:

@foreach (var res in Model.LinkCheckerResults 
        .Where(lcr => lcr.ResponseCode > 400 && lcr.ExtFlag == 1)) 
{ 
    <tr> 
    <td> 
    @Html.DisplayFor(model => res.SourceURL)<br> 
    </td> 
    <td> 
    @Html.DisplayFor(model => res.TargetURL) 
    </td> 
    <td> 
     @Html.DisplayFor(model => res.Response) 
    </td> 
</tr> 
} 

if聲明:

@foreach (var res in Model.LinkCheckerResults)<br> 
{ 
    if (res.ResponseCode > 400 && res.ExtFlag == 1) 
    { 
    <tr> 
    <td> 
    @Html.DisplayFor(model => res.SourceURL)<br> 
    </td> 
    <td> 
    @Html.DisplayFor(model => res.TargetURL) 
    </td> 
    <td> 
     @Html.DisplayFor(model => res.Response) 
    </td> 
    </tr> 
    } 
} 

或(在真正 MVC方式)提供集合預過濾作爲ViewData/ViewBag財產。

+0

這看起來正是我想要的。謝謝!我想我需要花一些時間並正確學習LINQ。我擅長使用SQL,但與LINQ語法完全混淆。 – stats101 2012-02-15 00:14:47

1

您可以篩選模型之前返回到視圖或做:

@foreach (var res in Model.LinkCheckerResults.Where(x=>x.Response > 400 && x.ExtFlag = 1).ToList())<br> 
{ 
    <tr> 
    <td> 
     @Html.DisplayFor(model => res.SourceURL)<br> 
    </td> 
    <td> 
     @Html.DisplayFor(model => res.TargetURL) 
    </td> 
    <td> 
     @Html.DisplayFor(model => res.Response) 
    </td> 
</tr> 
}