我正在使用分页列出来自数据库的Cadidates。我在一个页面中列出了12条记录。如果只有1页的详细信息要列出,我不希望显示分页。请帮帮我。以下是我的代码。 位指示:
[HttpGet]
public ActionResult Index(int? page, int? filter)
{
ViewBag.statusName = db.CandidateStatuses.ToList();
int pageSize = 12;
int pageNumber = (page ?? 1);
var candidates = new List<Candidate>();
if (filter != null)
{
ViewBag.Filter = filter;
candidates = db.Candidates.Where(m => m.CandidateStatusID == filter).OrderByDescending(m => m.CandidateID).ToList();
}
else
{
candidates = db.Candidates.OrderByDescending(m => m.CandidateID).ToList();
}
return View(candidates.ToPagedList(pageNumber, pageSize));
}
查看:
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, filter = ViewBag.Filter }))
我在我的视图中仅显示了分页部分的代码。请帮助我。
答案 0 :(得分:6)
我认为它应该有效:
@if(Model.PageCount > 1)
{
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, filter = ViewBag.Filter }))
}
答案 1 :(得分:3)
堆栈溢出,拒绝了我的编辑,并建议我将其添加为答案。
要修复整个部分,请添加&lt; p>在“Y页面X”周围标记。这样可以避免上面评论部分提到的“解析器错误”。
@{if(Model.PageCount > 1)
{
<p>Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount<p>
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, filter = ViewBag.Filter }))
}
}
答案 2 :(得分:3)
刚发现这个 - 太糟糕了,没找到它。很多内置选项:
http://www.nudoq.org/#!/Packages/PagedList.Mvc/PagedList.Mvc/PagedListRenderOptions
,这里需要的是:
new PagedListRenderOptions{ Display = PagedListDisplayMode.IfNeeded }
http://www.nudoq.org/#!/Packages/PagedList.Mvc/PagedList.Mvc/PagedListRenderOptions/P/Display
答案 3 :(得分:2)
这解决了这个问题。
@{
if(Model.PageCount > 1)
{
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, filter = ViewBag.Filter }))
}
}