Для элемента модели, переданного в словарь, требуется элемент модели типа 'PagedList.IPagedList - PullRequest
0 голосов
/ 05 июля 2018

[1] У меня есть эта ошибка Элемент модели, переданный в словарь, имеет тип 'System.Collections.Generic.List, но этот словарь требуется элемент модели типа 'PagedList.IPagedList`1 [OpenOrderFrame

i have my controller as this : 

public class ItemsController : Controller
        {
            private ApplicationDbContext db = new ApplicationDbContext();    
        // GET: Items
        public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page)
        {                      
            ViewBag.CurrentSort = sortOrder;
            ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "Name";
            ViewBag.PriceSortParm = sortOrder == "Name" ? "Loc_desc" : "Location";
            IEnumerable<Item> items = db.Items;
            var jo = (from a in items.GroupBy(x => new { x.Catagorie, x.ItemName })
                                     .Select(g => new
                                     {
                                         Category = g.Key.Catagorie,
                                         ItemName = g.Key.ItemName,
                                         Quantity = g.Sum(s => s.ItemQty),
                                         Location = g.First().Location
                                     })
                                    select a);
if (!string.IsNullOrWhiteSpace(searchString))
            {
                items = items.Where(s => s.ItemName.ToUpper().Contains(searchString.ToUpper())
                                           || s.Catagorie.Name.ToUpper().Contains(searchString.ToUpper())||
                                           s.Location.Name.ToUpper().Contains(searchString.ToUpper())).ToList().ToPagedList(page ??1,  20);
                //}

            }
            else
            {
                items = items.ToList().ToPagedList(page ?? 1, 10);
            }
            return View(jo);

и в моем представлении у меня есть код как это:

@model PagedList.IPagedList<OpenOrderFramework.Models.Item>
@using PagedList.Mvc;
@using PagedList;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />

@{
    ViewBag.Title = "Food";
}

[2], пожалуйста, помогите мне с кодом, я так сыт по горло я хочу передать список элементов в jo, чтобы просмотреть страницу .. СПАСИБО

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Вы возвращаетесь на просмотр jo (View(jo) здесь:

return View(jo);

, который не относится к типу IPagedList<OpenOrderFramework.Models.Item>.

Похоже, что вы ошибочно передали jo переменную вместо items обратно в метод View. Изменение на пройденное items должно исправить это.

Примечание: Я не уверен, что вы делаете, создавая jo, выполняя linq для items, но позже вы снова выполняете некоторые операции на items и возвращаете вместо jo назад. Поэтому вам нужно удалить дополнительный код.

0 голосов
/ 05 июля 2018

Вы возвращаете jo, но вы не хотите вернуть items?

 return View(items);

Или сделать jo PagedList ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...