如果你这样做,那么Paging方法一切正常。我的问题是我不想每次都获得数据集。我只想做一次。我怎样才能做到这一点? 表:
@model PagedList.IPagedList<ViewModel.QuestionViewModel>
@using PagedList.Mvc;
<table class="table">
<tr class="table-head">
<th>
<p>Sender</p>
</th>
<th>
<p>Subject</p>
</th>
<th>
<p>Received</p>
</th>
<th>
<p>HasAttachment</p>
</th>
<th></th>
</tr>
@foreach (var item in Model.Inbox) {
<tr class="mail-row" onclick="location.href = '@Url.Action("Index", "MailContent", new { id = item.Id })'">
<td>
@Html.DisplayFor(modelItem => item.From)
</td>
<td>
@Html.DisplayFor(modelItem => item.Subject)
</td>
<td>
@Html.DisplayFor(modelItem => item.Received)
</td>
<td>
@Html.DisplayFor(modelItem => item.HasAttachments)
</td>
<td>
@Html.DisplayFor(modelItem => item.AssetClass)
</td>
<td>
@Html.DisplayFor(modelItem => item.InProgressBy)
</td>
@*<td>
@html.actionlink("edit", "edit", new { /* id=item.primarykey */ }) |
@html.actionlink("details", "details", new { /* id=item.primarykey */ }) |
@html.actionlink("delete", "delete", new { /* id=item.primarykey */ })
</td>*@
</tr>
}
</table>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager( Model, page => Url.Action("MailList", new { page }) )
所以这是表格,但每次我点击下一个按钮,它都会返回控制器,再次获取所有邮件。由于数据集较大,每次都无法加载它。
控制器: MailboxController
public ActionResult MailList(string id, int? page) {
//TODO: get list
//get Maillist for mailbox
context = new InboxToolContext();
context.Mails.MailboxType = id;
Console.Write(i);
i = 2;
int pageSize = 20;
int pageNumber = (page ?? 1);
return View(context.Mails.All().ToPagedList(pageNumber,pageSize));
}