[英]Display only x numbers of items in index.cshtml
我正在Visual Studios,MVC 3,Razor引擎中创建一个新闻提要项目,并且我尝试仅一次显示10个提要的数量。
当前,当我正在获取数据库时,我使用了这个index.cshtml:
@model IEnumerable<NyjiGrunnur.Models.Article>
@{
ViewBag.Title = "NewsFeed";
}
<h2>@ViewBag.Message</h2>
@foreach (var item in Model)
{
<div id="eitt">
<fieldset>
<legend>@Html.ActionLink( item.Name, "Edit", new { id=item.Id } )</legend>
<div>@item.Subject, @item.Created</div>
<p>@Html.Raw(item.Content.Replace(Environment.NewLine, "<br/>"))</p>
</fieldset>
</div>
}
foreach接受每个项目,我想知道是否可以使用for循环或类似的方法仅显示10个最新的提要。
提前致谢。
您可以保留一个计数器变量并在显示数据之前检查它
@{
int counter=0;
}
foreach (var item in Model)
{
counter++;
if(counter<=10)
{
<div id="eitt">@item.Name</div>
}
}
但是最好在您的Action方法中执行此操作,并仅将10个项目返回到视图中,这样您就无需通过添加if语句来污染视图。 您可以使用LINQ中的Take
方法来获取10个项目。
public ActionResult Newsfeed()
{
List<Article> articleList=new List<Article>();
articleLsit=GetListOfItemsFromSomewhere();
//now get only 10. you may apply sorting if needed
articleList=articleList.Take(10);
return View(articleList);
}
会好起来的
@foreach (var item in Model.Take(10))
{
<div id="eitt">
<fieldset>
<legend>@Html.ActionLink( item.Name, "Edit", new { id=item.Id } )</legend>
<div>@item.Subject, @item.Created</div>
<p>@Html.Raw(item.Content.Replace(Environment.NewLine, "<br/>"))</p>
</fieldset>
</div>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.