I\'m trying to generate a table in a razor view using reflection to pull the properties from the model.
Here is what I\'ve tried:
@if (@Model.Count() &
If you dont really need the DisplayFor method, you can do it like this in your loop:
<tbody>
@foreach (PCNWeb.Models.Switch item in Model)
{
/*System.Reflection.PropertyInfo[]*/ properties = item.GetType().GetProperties();
<tr>
@foreach (var property in properties)
{
<td>
@property.GetValue(item,null)
</td>
}
</tr>
}
</tbody>
So basically I need to access the value of a property of item based on the name of the property stored in a variable.
No, you need to access the value of a property based on a PropertyInfo
object describing it. That's far far easier.
property.GetValue(item)