Показать подмножество данных на странице просмотра MVC3 - PullRequest
1 голос
/ 15 февраля 2012

Я возвращаю довольно много строк на странице просмотра.Я хочу показать несколько таблиц, каждая из которых является подмножеством полных результатов.У меня есть цикл foreach, и мне интересно, как я фильтрую результаты, чтобы "ResponseCode> 400" и "ExtFlag = 1"

@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 ]

2 голосов
/ 15 февраля 2012

Предполагая, что ResponseCode и ExtFlag являются членами всех возвращаемых 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>
  }
}

Или (способ true MVC) предоставляют коллекцию, предварительно отфильтрованную как свойство ViewData / ViewBag.

1 голос
/ 15 февраля 2012

вы можете либо отфильтровать вашу модель перед возвратом в представление, либо сделать:

@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>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...