MVC 3 WebGrid分页;t返回原始搜索结果

本文关键字:返回 原始 搜索结果 WebGrid 分页 MVC | 更新日期: 2023-09-27 18:21:32

我有一个搜索页面,加载时用它填充一个网络网格。我的问题是寻呼。加载时,我用"未发布"的文章填充网格(在这种情况下没有)。然后我搜索"当前发布",得到3行。

现在我有3个页面(出于测试目的,我将分页设置为每页一行)。第一次搜索时,它在网格中得到了正确的答案,假设有2页。

如果我单击2转到第二页-网格中填充了加载的标准-这是"未发布",其中没有。我看到我不会回到点击页面上的HttpPost操作,所以我不确定它为什么这么做。

你可以看到我有一个名为Admin的初始负载和一个名为Admin的Post(FormCollection值)在两者上,我都将默认值设置回"未发布"

        public ActionResult Admin()
        {
            var menus =
            (
                 from p in db.Menus.ToList()
                 where p.ParentID == 0
                 orderby p.Order ascending
                 select p.Name
            );
            ViewBag.Menus = new SelectList(menus, "Home");
            string[] publishedStatuses = new string[3] 
                   { "NOT PUBLISHED", "EXPIRED ALREADY", "CURRENTLY PUBLISHED"}; 
            ViewBag.Published = new SelectList(publishedStatuses, "NOT PUBLISHED");
            var articles =
            (
                    from p in db.Articles.ToList()
                    where p.PublishToWeb == false && p.Menu == "Home"                  
                    select p
             );
            }
            return View(articles);
        }              
} 

MVC 3 WebGrid分页;t返回原始搜索结果

您的问题是,您单击到页面的链接将再次调用管理控制器操作,由于您没有收到任何参数,它将再次进行初始搜索。

如果您将操作方法更改为:

public ActionResult Admin(int? page)
{
   //Your code here
}

您将从网络网格中获得页码,并可以在搜索中使用该页码。要启用过滤和搜索,请查看以下博客文章:

http://www.elylucas.net/post/Using-a-grid-that-can-sort-page-and-filter-in-AspNet-MVC3e28093Part-1e28093Using-the-WebGrid-WebHelper.aspx