Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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# MVC中的页面列表_C#_Asp.net Mvc - Fatal编程技术网

C# MVC中的页面列表

C# MVC中的页面列表,c#,asp.net-mvc,C#,Asp.net Mvc,我正在MVC应用程序中使用页面列表。我觉得它很棒! 当我尝试在页面内搜索时,它会显示当前搜索的页面数,但当我单击特定结果页面列表的第二页时,显示的页面总数是原始页面数。 为什么会这样? 这是我的控制器代码片段 public ActionResult Index(string sortOrder, string currentFilter,int? page, string search, string searchBy) var Users_info = from t i

我正在MVC应用程序中使用页面列表。我觉得它很棒! 当我尝试在页面内搜索时,它会显示当前搜索的页面数,但当我单击特定结果页面列表的第二页时,显示的页面总数是原始页面数。 为什么会这样? 这是我的控制器代码片段

public ActionResult Index(string sortOrder, string currentFilter,int? page, string search, string searchBy)    
        var Users_info = from t in db.Users_info_vw
                              where t.is_active == true                                              select t;
        ViewBag.CurrentSort = sortOrder;
         if(!String.IsNullOrEmpty(search))
        {
            switch (searchBy)
            {
                 case "user":
                    Users_info = Users_info.Where(x => x.Emp_FirstName.Contains(search)|| x.Emp_LastName.Contains(search));
                    break;
                default:
                    Users_info = Users_info.OrderByDescending(x => x.User_id);
                    break;
            }
        ViewBag.CurrentFilter = search;
        int pageSize = 15;
        int pageNumber = (page ?? 1);

        var returnMe = Users_info.ToPagedList(pageNumber, pageSize);
        return View(returnMe);
}
我认为:

<div class="paging">
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
    @Html.PagedListPager(Model, page => Url.Action("Index", 
        new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))
</div>

@Model.PageCount的@页(Model.PageCountUrl.Action(“索引”),
新建{page,sortOrder=ViewBag.CurrentSort,currentFilter=ViewBag.currentFilter})

有人能帮我解决这个问题吗?

我想原因是您没有在第二页的控制器中发送正确的参数名。例如,您正在使用控制器中的
search
作为参数名来搜索数据库中的用户,但在页面列表绑定时,您将此值放入
currentFilter
参数中

因此,用户
currentFilter
可以筛选用户记录,也可以通过页面列表发送
search
参数,例如:

解决方案1(在控制器中)

在此之后,不要忘记再次分配ViewBag,例如
ViewBag.CurrentFilter=CurrentFilter

解决方案2(在视图中)


希望这有帮助

你怎么称呼搜索?使用ajax调用还是重新加载完整页面?如果使用Ajax,则调用可能是不重新加载寻呼机值。我正在使用Html.BeginForm进行搜索。我看不到填充了
@Model.PageCount
的位置。你有那个密码吗?另外,我不确定哪一个属性是不正确的。你能说得更清楚些吗?@Charx,我用的是这个参考:页面列表。
Users_info = Users_info.Where(x => x.Emp_FirstName.Contains(currentFilter)
                                || x.Emp_LastName.Contains(currentFilter));
@Html.PagedListPager(Model, page => Url.Action("Index", 
        new { page, sortOrder = ViewBag.CurrentSort, search = ViewBag.CurrentFilter }))