これは、ページ数とページあたりのレコード数が10であることを正しく示しています。ただし、ページxをクリックすると、レコードの次のページにリダイレクトされません。Pagedlistはクリックされると次のページにリダイレクトされませんか?
私は以前のプロジェクトでこのコードを使用しましたが、うまくいきます。私が逃したかもしれないものはありますか?
マイコントローラ:
public ActionResult Index(int? page)
{
try
{
int intPage = 1;
int intPageSize = 10;
int intTotalPageCount = 0;
List<Announcement> col_Announcement = new List<Announcement>();
int intSkip = (intPage - 1) * intPageSize;
intTotalPageCount = db.Announcements.Count();
var result = db.Announcements
.Take(intPageSize)
.ToList();
foreach (var item in result)
{
Announcement objAnnouncement = new Announcement();
objAnnouncement.AnnouncementDate = item.AnnouncementDate;
objAnnouncement.AnnouncementTitle = item.AnnouncementTitle;
objAnnouncement.AnnouncementBody = item.AnnouncementBody;
col_Announcement.Add(objAnnouncement);
}
// Set the number of pages
var _AnnouncementAsIPagedList =
new StaticPagedList<Announcement>
(
col_Announcement, intPage, intPageSize, intTotalPageCount
);
return View(_AnnouncementAsIPagedList);
}
catch (Exception ex)
{
ModelState.AddModelError(string.Empty, "Error: " + ex);
List<Announcement> col_Announcement = new List<Announcement>();
return View(col_Announcement.ToPagedList(1, 25));
}
}
マイビュー:
@model PagedList.IPagedList<Test.Models.Announcement>
@using PagedList.Mvc;
<div class="jumbotron">
<h2>Announcements</h2>
<table class="table">
<tr>
<th>
Date Posted
</th>
<th>
Title
</th>
<th>
Body
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.AnnouncementDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.AnnouncementTitle)
</td>
<td>
@Html.DisplayFor(modelItem => item.AnnouncementBody)
</td>
</tr>
}
</table>
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index", new {page}))
</div>
を取る前に、いくつかのレコードをスキップする必要がスキップ*。 *最初のx-1ページをスキップします。 –
最初に '.Skip()'と '.Take()'を使用して結果を最初の10個の項目に制限し、 '.Skip()'と '' Take() 'を内部的に使用する '' StaticPagedListそれは意味をなさない。そして、別の同一のコレクションを生成するためにループを使用することは、あまり意味がありません。そして、あなたはメソッドに送られる 'page'の値を使用することは決してありません - 最初の10レコードしか取得しないので、毎回同じレコードを返すようにします。 –