0

我只是在学习如何使用 .net 和 mvc4,但我遇到了问题。我不知道如何只显示表中的前 5(或任意数量)行。这就是我目前将信息发送到视图的方式。

public ActionResult ActiveCampaigns()
{
    var campaigns = db.ActiveCampaigns.ToList();
    return View(campaigns);
}

谢谢 :)

更新:感谢您的快速回复!很简单!

db.ActiveCampaigns.Take(5).ToList()

我搜索了高和低,找不到这个,我的google-fu必须关闭。再次感谢!

4

3 回答 3

4

基本方法是

 var campaigns = db.ActiveCampaigns.Take(5).ToList();

但是根据上下文db的类型,这可能会失败。Skip()并且Take()在所有 IEnumrable 派生的接口上并不总是可用或允许的。在这种情况下,请阅读错误。通常你可以通过两种方式修复它:

 var campaigns = db.ActiveCampaigns.ToList().Take(5);  // expensive with many Campaigns

或者,当您有一个方便的排序标准时:

 var campaigns = db.ActiveCampaigns.OrderByDescending(c => c.Date).Take(5).ToList();
于 2012-11-20T14:04:04.650 回答
2

可枚举.Take

public ActionResult ActiveCampaigns()
{
    var campaigns = db.ActiveCampaigns.Take(5).ToList();
    return View(campaigns);
}
于 2012-11-20T14:04:04.057 回答
1

我假设您对分页感兴趣,在这种情况下,您还需要使用 Skip() 方法:

var campaigns = db.ActiveCampaigns.Skip(5).Take(5).ToList();

会给你第 2 页。显然,你会想要使用一个公式来处理要显示的页面:

var campaigns = db.ActiveCampaigns.Skip((page-1) * 5).Take(5).ToList();
于 2012-11-20T14:12:46.043 回答