完全なエラーメッセージは次のとおりです。メソッド 'Skip'は、LINQ to Entitiesのソートされた入力でのみサポートされています。メソッド 'Skip'の前にメソッド 'OrderBy'を呼び出す必要があります
「PurchaseOrderController」で、このコードをindexメソッドに追加しました。
// GET: PurchaseOrder
public ActionResult Index(int? page)
{
return View(db.PurchaseOrders.ToPagedList(page ?? 1, 3));
}
「PurchaseOrders」のインデックスビューにも、次のコードを追加しました。
@using PagedList;
@using PagedList.Mvc;
@model IPagedList<PurchaseOrders.Models.PurchaseOrder>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.First().PurchaseRequest_)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Date)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Requestor)
</th>
<th>
@Html.DisplayNameFor(model => model.First().Vendor)
</th>
<th>
@Html.DisplayNameFor(model => model.First().DateOrdered)
</th>
<th>
@Html.DisplayNameFor(model => model.First().ConfirmedWith)
</th>
<th>
@Html.DisplayNameFor(model => model.First().WorkOrder_)
</th>
<th></th>
</tr>
式に.OrderBy()
を追加する必要があります。
_return View(db.PurchaseOrders.OrderBy(i => i.SomeProperty).ToPagedList(page ?? 1, 3));
_
.ToPageList()
メソッドは.Skip()
および.Take()
を使用するため、最初に順序付けられたコレクションを渡す必要があります。