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);
}
}
您的问题是,您单击到页面的链接将再次调用管理控制器操作,由于您没有收到任何参数,它将再次进行初始搜索。
如果您将操作方法更改为:
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