2012-01-13 1 views
0

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

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

query == 2 если, я хотел бы выдвинуть список, где тип == «крышка» и numpage составляет более 5

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

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

The model item passed into the dictionary is of type 'System.Linq.Enumerable+WhereListIterator`1[Project.Web.Models.AdListing]', but this dictionary requires a model item of type 'Project.Web.Models.AdViewModel'.

Есть ли способ решить эту проблему без изменения модели viewModel или моего объекта списка объявлений?

+0

что является листинг? – Shyju

+0

листинг список tap

+0

Какой вид вида? – ivowiblo

ответ

1

Хорошо, во-первых, похоже, что вы пытаетесь передать список объектов в представление, ожидающее одного объекта. Измените свое мнение, чтобы ожидать модель 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()); 
}