[英]Order by date asp.net MVC 5
我有一个创建新闻条目并显示10条新闻的应用程序。 它应该显示10个“最新”新闻。 现在,它显示了10个最古老的新闻。
我该如何更改。是否更改控制器,以便按日期对数据进行排序? 还是可以在视图中做到这一点?
控制器:
public ActionResult Index()
{
return View(db.News.ToList());
}
// GET: /Newss/Create
public ActionResult Create()
{
return View();
}
// POST: /Newss/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="ID,title,body,category,dateCreated")] News news)
{
if (ModelState.IsValid)
{
news.dateCreated = DateTime.Now;
db.News.Add(news);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(news);
}
最好在您的控制器中执行此操作:
public ActionResult Index()
{
return View(db.News.OrderByDescending(news => new.dateCreated).Take(10).ToList());
}
这样,您可以从数据库中获得排序的数据。 通常,您应该尽可能将视图保持为“无代码”。
使用以下代码显示10条最新新闻:
public ActionResult Index()
{
return View(db.News.OrderByDescending(news => new.dateCreated).Take(10).ToList());
}
上面的答案很好,并且可以在控制器端工作。 如果您出于某种原因想要在视图中执行此操作,请按以下步骤操作:
@foreach (var item in Model.OrderBy(item => item.PostedDate))
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.PostedDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.SomethingAmazing)
</td>
</tr>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.