我正在学习如何使用.net和mvc4,我遇到了问题。我不知道如何只显示表中的前5行(或任何数字)。这就是我目前将信息发送到视图的方式。
public ActionResult ActiveCampaigns()
{
var campaigns = db.ActiveCampaigns.ToList();
return View(campaigns);
}
谢谢:)
更新: 感谢您的快速回复!这么简单!
db.ActiveCampaigns.Take(5).ToList()
我搜索高低不能找到这个,我的google-fu必须关闭。再次感谢!
答案 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)
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();