搜索和分页,但在搜索时仍然显示错误的页面总数
本文关键字:搜索 错误 显示 分页 | 更新日期: 2023-09-27 18:29:39
嗨,我在这里使用本指南,并遵循它。但我只使用搜索和分页。
当我搜索某个东西时,它仍然显示16页,但应该是3页。
这是控制器的代码:
public ActionResult Index(int page = 1,string search = null)
{
IEnumerable<Produkter> produkt = db.Produkter.Where(p => search == null
|| p.Kategorie.Contains(search)
|| p.Material.Contains(search)
|| p.Namn.Contains(search)
|| p.Storlek.Contains(search)
|| p.Tillbehör.Contains(search)
|| p.Tillbehörstyp.Contains(search)
|| p.Benämning.Contains(search)
|| p.Färg.Contains(search));
ViewBag.TotalPages = (int)Math.Ceiling((double)db.Produkter.Count() / pageSize);
produkt = produkt.Skip((page - 1) * pageSize).Take(pageSize).ToList();
ViewBag.CurrentPage = page;
ViewBag.PageSize = pageSize;
ViewBag.Search = search;
return View(produkt);
以下是观点:
@model IList<Mvctest.Models.Produkter>
@helper biuldLinks(int start, int end, string innerContent)
{
for (int i = start; i <= end; i++)
{
<a class="@(i == ViewBag.CurrentPage ? "current" : "")" href="@Url.Action("Index", "Produkter", new { Search = ViewBag.Search , page = i})">@(innerContent ?? i.ToString())</a>
}
}
@helper pageLinks()
{
exakly the same code on the giude
}
<div class="product-search">
<form action="@Url.Action("Index", "Produkter")" method="get">
Search <input id="search" name="search" type="text" value="@ViewBag.Search" />
<input type="submit" value="Search" />
</form>
Page:
@pageLinks()
寻呼正在工作,搜索正在工作。问题是,当我搜索页面时,仍然会显示页面总数。当所有产品都列出时,它就像16页,但当我搜索时,它可能只有3页。
当您进行计数时,您不计算过滤列表
ViewBag.TotalPages = (int)Math.Ceiling((double)db.Produkter.Count() / pageSize);
尝试用替换
ViewBag.TotalPages = (int)Math.Ceiling((double)produkt.Count / pageSize);