Razor MVC 从模型中获取单个项目

Razor MVC get single item from Model

我对 Razor/MVC 东西很陌生,所以我有一个非常基本的问题。

我知道我可以在局部视图中循环遍历模型

@foreach (var e in Model.Modelname)
{
    e.ModelProperty
}

我想做的不是像上面那样遍历模型中的所有项目,而是从模型中获取一个(如果有多个,则为第一个)项目。

我意识到我可以这样写:

@foreach (var e in Model.Modelname)
{
    e.ModelProp.First()
}

然而,为了从模型中获取 1 个项目而不得不编写一个循环似乎很愚蠢..而且在有人说你为什么不写

之前
      e.ModelProp 

因为很多时候,我需要获取模型中的属性,而在编写之间我会得到一组完全不同的属性(通常更全面)

 Model.ItemProp    

 or

  foreach (var e in Model.Modelname)
  {
      e.ItemProp
  }

所以我想我真正想问的是如何获得那些单独的属性,就像我可以在 Model.Modelname 中使用 var e 一样,而不必遍历模型?

我试过

var e = Model.Modelname;

e.ModelProp

但显然这不起作用

谢谢!

您似乎在尝试获取 Modelname 的第一项,然后是 Modelname 的第一项的第一项 属性:

Model.Modelname.First().ModelProp.First()

如果您只想要 Modelname 中的第一个对象,然后是特定的 属性:

Model.Modelname.First().ModelProp

少加。该列表可能为空,因此添加空检查:

Model.Modelname.FirstOrDefault()?.ModelProp ?? ""

如果你想获得 ModelProp 的所有第一项,那么

Model.Modelname.Select(x=> x.ModelProp.FirstOrDefault())

如果要获取第一个ModelName的第一个ModelProp:

Model.Modelname.FirstOrDefault(x=> x.ModelProp.FirstOrDefault())