ASP.NET MVC 5アプリケーションにページネーションを使用しようとしています。 私は使用しましたX.PagedList 私は単純なオブジェクトで正しく実装しましたが、より複雑なオブジェクトで実装する際に問題があります。例えば、私がフォーラムで投稿とコメントのような関係を持っているときのように。'System.Data.Entity.Infrastructure.DbQuery'型のオブジェクトを 'PagedList.IPagedList'と入力するとキャストできません
マイモデルは、コントローラに以下の構造
public class PublicReport
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PublicReportID { get; set; }
public string Title { get; set; }
...
public virtual Institutions Institution { get; set; }
...
}
public class Institutions
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int InstitutionID { get; set; }
public string Name { get; set; }
...
}
を有するビュー(PartialView)に次のコード
public ActionResult ListReports(int? page)
{
var pageNumber = page ?? 1;
var listOfReports = db.PublicReport.OrderByDescending(d => d.CreatedDate).Where(c => c.CategoryId == 1).ToList();
listOfReports.ToPagedList(pageNumber, 3);
return View("ReportList", listOfReports);
}
ある関連部分は
@model IEnumerable<RENJK.Models.PublicReport>
@using PagedList.Mvc;
@using PagedList;
@foreach (var item in Model)
{
<div class="consult-post-sec">
<div class="row">
<div class="col-sm-12">
<p>@Html.DisplayFor(modelItem => item.Title)</p>
<div class="consult-posts-by">
@Html.DisplayFor(modelItem => item.Institution.Name)
</div>
</div>
</div>
</div>
}
@Html.PagedListPager((IPagedList)Model, page => Url.Action("Index", new { page }), PagedListRenderOptions.OnlyShowFivePagesAtATime)
エラーであります私が得るのは
'System.Collections.Generic.List`1 [RENJK.Models.PublicReport]'タイプのオブジェクトをキャストして、 'PagedList.IPagedList'と入力できません。
この問題は、ListPagerを表示したいコード行のビューにあるようです。なぜなら、エラーが表示されないようにするためです。
この場合、私は何ができますか?
ありがとう! ToPagedListはlistOfReportsで直接動作すると思った – Endri