如何发送列表项以在mvc3中按部分查看?

时间:2012-09-11 16:11:39

标签: asp.net-mvc-3

我有一个产品清单,希望在每次页面刷新时将其发送到逐个部分,每页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个产品发送到视图并在每个刷新站点中进行更新。

我有一个想法,即采取随机索引并启动,但我需要知道最后的发送索引,并在每次刷新时,将其发送到控制器的当前操作。我怎么能做到这一点?

1 个答案:

答案 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>
}