Я бы сделал так, чтобы они оба реализовали из IPerson
, а затем создал бы DisplayTemplate
, который был строго набран на IPerson
, затем перебрал и назвал его
public interface IPerson
{
string First { get; set; }
string Last { get; set; }
int Age { get; set; }
}
<%@ Control Language="C#" Inherits="ViewUserControl<IPerson>" %>
<tr class="<%=Model.GetType().Name.ToLower() %>">
<td><%: Model.First %></td>
<td><%: Model.Last %></td>
<td><%: Model.Age %></td>
</tr>
<table>
<% foreach (Person person in Model) { %>
<%=Html.DisplayFor(m => person, "IPersonRow") %>
<% foreach (Child child in person.Children) { %>
<%=Html.DisplayFor(m => child, "IPersonRow") %>
<% } %>
<% } %>
</table>