PaginatedList - 为什么我不能在控制器中创建ToList()?

时间:2014-06-16 16:45:03

标签: c# asp.net-mvc

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

它有效,但我不明白一件事 - 我无法在控制器中使用ToList():

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

return View(paginatedDinners);

为什么呢?我有错误: System.InvalidCastException,无法将List强制转换为PaginatedList

没有ToList()它有效,为什么? PaginatedList继承自List,为什么我不能使用ToList()?

2 个答案:

答案 0 :(得分:3)

据推测,你的观点有这样一句话:

@model PaginatedList<Dinner>

这意味着您无法传递PaginatedList<Dinner>以外的任何内容。

如果您正在使用this tutorial,则他们提供的PaginatedList<Dinner>的实施会继承List<T>,因此您可以通过更改@model声明:

@model List<Dinner>

但是,如果您在视图中使用PaginatedList<T>类的任何属性,这将无效。

答案 1 :(得分:0)

PaginatedList继承自List,但只要您预期PaginatedList传递List就不准确。您可以修改代码以获得List或传递PaginatedList