我有一个产品清单,希望在每次页面刷新时将其发送到逐个部分,每页5个。当所有部件都显示在下一次刷新时从列表的开头开始。如果产品列表计数不是5的分红,例如,count = 23,则返回到第一个。即取15-20,然后取20-2(21,22,23,1和2)。然后,3-8并继续。
我不能将分页规则用作:
ViewBag.Result = db.Products.Skip( ( pageNo - 1 ) * 5).Take( 5 ).ToList();
因为,我会将所有操作中的5个产品发送到视图并在每个刷新站点中进行更新。
我有一个想法,即采取随机索引并启动,但我需要知道最后的发送索引,并在每次刷新时,将其发送到控制器的当前操作。我怎么能做到这一点?
答案 0 :(得分:1)
您需要在HTTP调用之间保留最后一个发送索引。由于 HTTP是无状态 ,因此您需要一种媒介来保持它。您可以使用会话变量做。
Session["LastIndexSent"]= 5;
return View(someITemList);
同时尽量避免在ViewBag中发送此类结果。使用ViewBag/ViewData
等动态内容在控制器和视图之间传输数据会使代码变得丑陋。使用强类型方法。
List<Product> productList=GetProductListFromSomeWhere();
return View(productList);
在你的强类型视图中,
@model List<Product>
@foreach(var prod in Model)
{
<p>@prod.Name</p>
}