PaginatedList -为什么我不能'

本文关键字:不能 为什么 PaginatedList | 更新日期: 2023-09-27 18:08:55

我已经根据本教程创建了一个分页列表:http://nerddinnerbook.s3.amazonaws.com/Part8.htm

它工作,但我不明白一件事-我不能使用ToList()在控制器:

var paginatedDinners = new PaginatedList<Dinner>(upcomingDinners, page ?? 0, pageSize).ToList();
return View(paginatedDinners);

为什么?我有错误:系统。InvalidCastException,不能将List转换为PaginatedList

没有ToList()它可以工作,为什么?PaginatedList继承自List,所以为什么我不能使用ToList()?

PaginatedList -为什么我不能'

假设你的视图有这样一行:

@model PaginatedList<Dinner>

这意味着除了PaginatedList<Dinner>之外,您不能传递其他任何内容。

如果你正在使用本教程,他们提供的PaginatedList<Dinner>的实现继承自List<T>,所以你可以通过改变你的@model声明来让它工作:

@model List<Dinner>

但是,当然,如果你在视图中使用PaginatedList<T>类的任何属性,这将不起作用

PaginatedList继承自List,但是当您期望传递PaginatedList时,传递List是不准确的。您可以修改您的代码以使用List或传递PaginatedList