2015-07-17 3 views
0

Я пытаюсь использовать упакованный PagedList.MVC, чтобы попытаться заставить мои данные разбиваться на страницы. Однако я до сих пор в контроллер, а затем получить вышеуказанную ошибку и другая ошибка, приводится ниже:Невозможно преобразовать ViewModel в общий IEnumerable ViewModel

Лучший перегруженный метод подходит для «PagedList.PagedList.PagedList (System.Collections.Generic.IEnumerable <ViewModel>, int, int) 'имеет некоторые недопустимые аргументы

Но, я думаю, эта ошибка будет исправлена ​​после того, как моя первая ошибка будет решена.

Может ли кто-нибудь помочь мне с проблемой?

Контроллер:

public ActionResult SupplierReportSelection(int ClientID, int? SupplierID = null, int? ReviewPeriodID = null, int page = 1) 
{ 
    ClaimsBySupplierViewModel SupplierModel = ClaimsBySupplier(ClientID, SupplierID, ReviewPeriodID); 

    int pageSize = 10; 
    int pageNumber = (page); 

    PagedList<ClaimsBySupplierViewModel> model = new PagedList<ClaimsBySupplierViewModel>(SupplierModel, page, pageSize); 
    ViewBag.client = client; 

    return View("ClaimsBySupplier", model); 
} 

ViewModel:

public class ClaimsBySupplierViewModel : ReportViewModel { 
     public IQueryable<ClaimsBySupplierReport> ReportData { get; set; } 
     public IQueryable<SupplierAndClaimNumberReviewTotalsByStatusCategory> ReportTotalData { get; set; } 
     public decimal? Conversion { get; set; } 
    } 
+0

Итак, что именно вы хотите на «страницу»? 'ReportData' или' ReportTotalData'? 'PagedList' только« страницы »одной коллекции, поэтому неясно, что вы собираетесь показывать в представлении. –

+0

Извините, ReportData и ReportTotalData содержат коллекцию моей модели. Я просто хочу разделить результаты на страницы, чтобы облегчить время загрузки. –

+0

Я обновил свой ответ, вы ссылались на модель в целом, но вам нужно было указать, какой список. – Chad

ответ

2

PagedList ищет IEnumerable объекта, например, список объектов.

Будучи то, что ваш поставщикМодель выглядит специфично для одного объекта со свойствами, это то, что вызывает вашу проблему.

После просмотра кода модели, вам нужно будет указать список данных вашей модели, который вы хотите показать, а не только свою модель.

И вместо создания экземпляра объекта PagedList верните представление со списком ваших данных.

return View("ClaimsBySupplier", SupplierModel.ReportData.ToPagedList(page, pageSize); 
+0

Хорошо, я добавлю теперь модель представления –

+0

Спасибо за ответ , Однако, даже я реализую эту проблему, я все равно получаю ту же проблему. Это потому, что мне нужно иметь выгружаемый список моей модели, а не мою модель представления, поскольку у меня есть только одна модель представления, содержащая коллекцию одной модели –

Смежные вопросы