繁体   English   中英

在index.cshtml中仅显示x个项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM