В настоящее время я использую groupby с циклом foreach для отображения списка вложенных записей.
Однако я хочу использовать идентификатор в качестве ключа, чтобы я мог использовать его для создания динамических селекторов CSS и т. Д.
Но я хочу иметь возможность показывать имя каждой из групп перед повторным циклом secondarly.
Я думаю, что код сделает его более понятным.
В принципе, было бы здорово, если бы я мог получить доступ к свойствам, отличным от group.key, до начала второго цикла.
Я знаю, что мог бы ограничить итерации цикла заголовка, но это выглядит очень неправильно
<ul id="GoalAndTaskList">
<% foreach (var group in Model.GroupBy(item => item.goalId)) { %>
<li>
/////This code is just to display the name, but it iterates
/////through the whole group, so the title is rendered many times
<% foreach (var item in group)
{ %>
<%= Html.Encode(item.goalName) %>
<% } %>
///////// Before this I was using group.key , which meant an Id was the title
/////////
<table id="taskTable<%= Html.Encode(group.Key) %>">
<% foreach (var item in group) { %>
<tr id="<%= Html.Encode(item.sortOrder) %>">
<td class="dragHandle"> </td>
<td><%= Html.Encode(item.sortOrder) %></td>
<td>
<input type="text" name="<%= Html.Encode(item.taskId) %>" value="<%=Html.Encode(item.taskName) %>"/>
</td>
<td>
<a id="DeleteTask<%= Html.Encode(item.taskId) %>">Delete Task</a>
</td>
</tr>
<% } %>
</table>
<br /><a id="AddNew2<%= Html.Encode(group.Key) %>">Add new task</a><br /><br />
</li>
<% } %>
</ul>