Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 搜索和分页,但搜索时仍显示错误的总页数_C#_Asp.net Mvc 3 - Fatal编程技术网

C# 搜索和分页,但搜索时仍显示错误的总页数

C# 搜索和分页,但搜索时仍显示错误的总页数,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,嗨,我正在使用这本指南,我遵循它。但我只使用搜索和分页 当我搜索的东西,它仍然显示16页,但它应该像3页 以下是控制器的代码: public ActionResult Index(int page = 1,string search = null) { IEnumerable<Produkter> produkt = db.Produkter.Where(p => search == null || p.Kategorie

嗨,我正在使用这本指南,我遵循它。但我只使用搜索和分页

当我搜索的东西,它仍然显示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);
public ActionResult索引(int page=1,string search=null)
{
IEnumerable produkt=db.Produkter.Where(p=>search==null
||p.Kategorie.Contains(搜索)
||p.Material.Contains(搜索)
||p.Namn.Contains(搜索)
||p.Storlek.Contains(搜索)
||p.Tillbehör.Contains(搜索)
||p.Tillbehörstyp.Contains(搜索)
||p.Benämning.Contains(搜索)
||p.Färg.包含(搜索));
ViewBag.TotalPages=(int)Math.天花((double)db.Produkter.Count()/pageSize);
produkt=produkt.Skip((第1页)*pageSize.Take(pageSize.ToList();
ViewBag.CurrentPage=第页;
ViewBag.PageSize=页面大小;
ViewBag.Search=搜索;
返回视图(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()
@model-IList
@帮助程序链接(int开始、int结束、字符串innerContent)
{

对于(int i=start;i进行计数时,不计算过滤列表

ViewBag.TotalPages = (int)Math.Ceiling((double)db.Produkter.Count() / pageSize);
试着用

ViewBag.TotalPages = (int)Math.Ceiling((double)produkt.Count / pageSize);

thx.嗨,我还有一个问题。| | p.Benämning.Contains(search)| | p.Färg.Contains(search)| p.price.ToString().Contains(search));但数据库中的价格是货币价值。但我可以转换它。它说ViewBag.TotalPages=(int)Math.天花板((double)produkt.Count()不是同一类型(应该可以。我手头没有VS2010,但可能我的错误是您必须删除
()
唯一的produkt.Count