Let's say I have an Index view. The model I pass in is actually a collection of models, so the Html
property is of type HtmlHelper<List<MyModel>>
. If I want to call extension methods (e.g., Display()
or DisplayFor()
on the individual items in the list, however, I think I need to obtain an HtmlHelper<MyModel>
. But how?
I tried using the HtmlHelper<TModel>
constructor, which looks like this:
HtmlHelper<TModel>(ViewContext, IViewDataContainer)
But I'm not having any luck with that. I don't know how to obtain the IViewDataContainer
for the item, and the documentation on these things is very sparse.
A lot of magic apparently happens when I do...
return View(List<MyModel>);
...in my controller.
How do I recreate that magic on individual items in a list/collection?
Update
Here is a code snippet to show what I'm trying to accomplish:
foreach(var item in items)
{
var helper = new HtmlHelper<ProjName.MyModel>(ViewContext, ????);
%>
<tr>
<%
foreach(var property in properties)
{
%>
<td>
<%= helper.Display(property.DisplayName) %>
</td>
<%
}
%>
</tr>
<%
}
Basically, I want to populate the cells of a table using the items in the collection. I just need help setting the helper
variable.