我正在做一个ASP.NET项目,之前从未使用过它,我在cshtml文件中遇到问题,首先我知道我有一个foreach,并且值会出现多次,但是如果我将@ Html.LabelFor和@ Html.DisplayNameFor放在foreach之外并创建另一个变量,则代码将无法正常工作,我只想显示一次,却不知道该怎么做
@foreach (var pap in Model.PessoasEpisodios)
{
<tr>
<th>
@Html.LabelFor(a => pap.Episodios.Temporadas.Series.Nome, "Nome Série")
</th>
<th>
@Html.LabelFor(a => pap.Episodios.Temporadas.Nome, "Nome Temporada")
</th>
<th>
@Html.DisplayNameFor(a => pap.Episodios.Nome)
</th>
<th>
@Html.DisplayNameFor(a => pap.Papel)
</th>
</tr>
<tr>
<td>
@Html.DisplayFor(a => pap.Episodios.Temporadas.Series.Nome)
</td>
<td>
@Html.DisplayFor(a => pap.Episodios.Temporadas.Nome)
</td>
<td>
@Html.DisplayFor(a => pap.Episodios.Nome)
</td>
<td>
@Html.DisplayFor(a => pap.Papel)
</td>
</tr>
}
答案 0 :(得分:0)
Model.PessoasEpisodios
链接到一个列表或在您的情况下为可枚举的列表,该列表不存储您要访问的属性。这意味着您要访问的属性确实存在于它所保存的项目中。因此,为了访问它,您可以获取列表的第一个索引并显示其属性(所有列表迭代都具有这些属性,但是假设列表中有项目,这可能是最安全的)。
据我所知,这是唯一的方法。
<th>
@Html.DisplayNameFor(a => pap.Episodios[0].Nome)
</th>
编辑:
在这种情况下,您也可以使用Single
或SingleOrDefault
代替[0]。基本上是同一件事。