Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC 2-仅在每个循环中显示第一个结果_Asp.net Mvc_Model View Controller_Asp.net Mvc 2_Viewmodel - Fatal编程技术网

Asp.net mvc MVC 2-仅在每个循环中显示第一个结果

Asp.net mvc MVC 2-仅在每个循环中显示第一个结果,asp.net-mvc,model-view-controller,asp.net-mvc-2,viewmodel,Asp.net Mvc,Model View Controller,Asp.net Mvc 2,Viewmodel,我有一个相当基本的循环: <% foreach (var item in Model.Items.OrderByDescending(b => b.ItemDateTime)) {%> b.ItemDateTime)){%> 我不想在所有项目之间循环,而只是想输出第一个项目,我如何才能做到这一点?您可以使用集合的FirstODefault()方法。请尝试以下操作: // check if the model contains any item if (Model.Items

我有一个相当基本的循环:

<% foreach (var item in Model.Items.OrderByDescending(b => b.ItemDateTime)) {%>
b.ItemDateTime)){%>

我不想在所有项目之间循环,而只是想输出第一个项目,我如何才能做到这一点?

您可以使用集合的
FirstODefault()
方法。请尝试以下操作:

// check if the model contains any item
if (Model.Items.Count() > 0)
{
    //show the item...
    var firstItem = Model.Items.OrderByDescending(b => b.ItemDateTime).FirstOrDefault();
}

您可以使用集合的
FirstODefault()
方法。请尝试以下操作:

// check if the model contains any item
if (Model.Items.Count() > 0)
{
    //show the item...
    var firstItem = Model.Items.OrderByDescending(b => b.ItemDateTime).FirstOrDefault();
}

为了扩展Felipe的评论,更好的设计通常是将这样的东西放在视图模型或控制器中,而不是视图中

您可以将其放在viewmodel上

public Item EarliestItem
{
    get { return Items.OrderByDescending(b => b.ItemDateTime).FirstOrDefault(); }
}
然后在你的视图中使用它


或者,不管你想对最早的项目做什么。

为了扩展Felipe的评论,更好的设计通常是将这样的东西放在视图模型或控制器中,而不是视图中

您可以将其放在viewmodel上

public Item EarliestItem
{
    get { return Items.OrderByDescending(b => b.ItemDateTime).FirstOrDefault(); }
}
然后在你的视图中使用它


或者不管您想对最早的项目做什么。

Felipe Oriani的解决方案是可行的,但是,根据MVC设计原则,您应该在加载视图之前解决这个问题(即,在模型层的某个位置,但不一定在视图模型中,该视图模型应该包含大部分(如果不是全部)POCO)。智能视图是一种反模式。Felipe Oriani的解决方案是有效的,但是,根据MVC设计原则,您应该在加载视图之前解决此问题(即,在模型层的某个位置,但不一定在视图模型中,该视图模型应该包含大部分(如果不是全部)POCO)。智能视图是一种反模式。