Пытаюсь отфильтровать мой список и нажать для просмотра MVC - PullRequest
0 голосов
/ 14 января 2012

У меня есть список типа AdListing в моем домашнем контроллере. Я бы хотел использовать разные фильтры этого списка в зависимости от строки запроса.

, если query == 1, нажать нефильтрованный полный список

, если query == 2, я хотел бы нажать на список, где type == "cover" и число превышает 5

return View(listing.Where(o => String.Equals(o.type, 
                                             "Cover", 
                                             StringComparison.InvariantCulture) 
                          && o.numPage > 5));

Однако я получаю сообщение об ошибке:

Элемент модели, передаваемый в словарь, имеет тип «System.Linq.Enumerable + WhereListIterator`1 [Project.Web.Models.AdListing]», но для этого словаря требуется элемент модели типа «Project.Web.Models.AdViewModel».

есть ли способ решить эту проблему, не меняя мою viewModel или мой объект AdListing?

1 Ответ

1 голос
/ 14 января 2012

Хорошо, во-первых, похоже, что вы пытаетесь передать список объектов в представление, которое ожидает один объект.Измените ваше представление, чтобы ожидать модель IEnumerable<AdListing>.

Теперь, что касается вашего запроса, он должен быть таким простым:

if (query == 1)
{
    return View(listing);
}
else
{
    return View(listing.Where(o => String.Equals(o.type, "Cover", 
                                   StringComparison.InvariantCulture) 
                                   && o.numPage > 5).ToList());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...