Ваша модель представления не приспособлена к тому, чего вы пытаетесь достичь.Вот как будет выглядеть модель лучшего вида:
public class MyViewModel
{
// This property represents the header value
// you could use data annotations to localize it
[Display(.. some localization here ..)]
public string NameHeader { get; set; }
// This property represents the data source that
// will be used to build the table
public IEnumerable<User> Users { get; set; }
}
, а затем:
@model MyViewModel
<table>
<tr>
<th>
@Html.LabelFor(x => x.NameHeader)
</th>
</tr>
@foreach (var item in Model.Users) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
</table>
, а с шаблоном отображения вам даже не нужно писать цикл foreach
:
@model MyViewModel
<table>
<tr>
<th>
@Html.LabelFor(x => x.NameHeader)
</th>
</tr>
@Html.DisplayFor(x => x.Users)
</table>
и внутри пользовательского шаблона отображения (~/Views/Shared/DisplayTemplates/User.cshtml
):
@model User
<tr>
<td>@Html.DisplayFor(x => x.Name)</td>
</tr>