MVC4 ToList()显示前几条记录

时间:2012-11-20 14:01:30

标签: c# asp.net-mvc asp.net-mvc-4

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

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

谢谢:)

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

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

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

3 个答案:

答案 0 :(得分:4)

基本方法是

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

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

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

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

 var campaigns = db.ActiveCampaigns.OrderByDescending(c => c.Date).Take(5).ToList();

答案 1 :(得分:2)

Enumerable.Take

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

答案 2 :(得分:1)

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

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

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

var campaigns = db.ActiveCampaigns.Skip((page-1) * 5).Take(5).ToList();