Используя MVC3, я создаю общее частичное представление, которое принимает IList
в качестве своей модели, а затем создает таблицу на основе ModelMetaData
первого объекта, содержащегося в списке.До сих пор я могу получить отображаемые имена каждой «вещи» в объекте, но я не могу перечислить фактические поля / данные в объекте.Вот что я пробовал:
@model System.Collections.IList
@if (this.Model.IsNullOrEmpty())
{
<p>No items found.</p>
}
else
{
<table>
<thead>
@{
ViewDataDictionary<object> viewData = new ViewDataDictionary<object>();
ModelMetadata metadata = ModelMetadata.FromLambdaExpression<object, object>(m => this.Model[0], viewData);
foreach (var property in metadata.Properties)
{
<th>@property.DisplayName</th>
}
}
</thead>
<tbody>
@foreach (var item in this.Model)
{
ViewDataDictionary<object> itemData = new ViewDataDictionary<object>(item);
<tr>
@foreach (var data in itemData)
{
<td>@data</td>
}
</tr>
}
</tbody>
</table>
}
Цикл, который создает строки, работает, но в ViewData
ничего нет.Мысли?