使用groupby foreach循环c#asp.net mvc显示除键以外的项

使用groupby foreach循环c#asp.net mvc显示除键以外的项,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我目前正在使用带有foreach循环的groupby来显示嵌套记录的列表 但是我想给我们一个id作为键,这样我就可以用它来制作动态css选择器等等 但是我希望能够在第二个循环迭代之前显示每个组的名称 我认为守则会更清楚 基本上,如果我能在第二个循环开始之前访问group.key以外的属性,那就太好了。 我知道我可以限制标题循环的迭代次数,但感觉非常错误 <ul id="GoalAndTaskList"> <% foreach (var group in Model.

我目前正在使用带有foreach循环的groupby来显示嵌套记录的列表

但是我想给我们一个id作为键,这样我就可以用它来制作动态css选择器等等

但是我希望能够在第二个循环迭代之前显示每个组的名称

我认为守则会更清楚

基本上,如果我能在第二个循环开始之前访问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">&nbsp;</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>
    item.goalId)){%>
  • /////此代码仅用于显示名称,但它会进行迭代 /////通过整个组,因此标题被渲染多次 /////////在此之前,我使用group.key,这意味着Id就是标题 ///////// 删除任务
    添加新任务

我所做的就是这样

<% foreach (var item in group.Take(1))
  { %>
  <%= Html.Encode(item.goalName) %>   
 <% } %>

这样做感觉很不对,有人能建议一种更干净的方法吗