2017-10-20 1 views
0

MVC에서 새로운 기능입니다. 이 페이지에서; 루프로 "유닛 이름"에 속하는 프로젝트를 나열합니다. 그리고 내가하고 싶은 일 : 같은 "유닛 이름"에 속한 프로젝트들을 그룹화하고 싶습니다. 각 프로젝트에는 자신이 속한 "단위 이름"이 있습니다. 하나의 프로젝트에 두 개 이상의 프로젝트가 속할 수 있습니다. 그래서 그것을 그룹화하고 싶습니다. 다음과 같이그룹화/GROUP BY MVC에서 LINQ 함께

내 cshtml 코드는 다음과 같습니다

@if (Model.Projects.Any()) 
{ 
    foreach (var item in Model.Projects.ToList()) 
    { 
     <div class="ProjectPartialBody" data-id="@item.ID"> 
      <div class="portlet box blue"> 
       <div class="portlet-title"> 
        <div class="caption"> 
         <span><i class="glyphicon glyphicon-asterisk"></i> @item.tbl_Unit.Name</span> 
        </div> 
        <div class="tools"> 
         <a href="#" class="collapse"> </a> 
        </div> 
        <div class="actions"> 
         <a href="@Url.Action("Details", "Project", new {ID=item.ID })" class="btn btn-circle default">Details</a> 
        </div> 
       </div> 
       <div class="portlet-body"> 
        <span><i class="fa fa-file"></i> @item.Name</span> 
        <span><i class="fa fa-calendar"> Contract Start and End Dates: @(item.ContractStartDate != null ? item.ContractStartDate.Value.ToString("dd.MM.yyyy") : "-")/@(item.ContractEndDate != null ? item.ContractEndDate.Value.ToString("dd.MM.yyyy") : "-")</i></span> 
        <div class="well"> 
         <div class="form-group"> 
          <label>Cash Completion Rate: %@item.CashCompletionRate</label> 
          <div class="progress progress-striped active"> 
           <div class="progress-bar progress-bar-info" role="progressbar" style="width: @(item.CashCompletionRate)%;"></div> 
          </div> 
         </div> 
        </div> 
        <div class="well"> 
         <div class="form-group"> 
          <label>Physical Completion Rate: %@item.PhysicalCompletionRate</label> 
          <div class="progress progress-striped active"> 
           <div class="progress-bar progress-bar-info" role="progressbar" style="width: @(item.PhysicalCompletionRate)%;"></div> 
          </div> 
         </div> 
        </div> 
       </div> 
      </div> 
     </div> 
    } 
} 

그리고 다음과 같이 페이지 뷰가 (내보기는 터키어에 있지만 당신은 내가 무슨 말을하고 무엇을 이해하게 될 것입니다) :

My Page View

도와 주실 수 있습니까? 그리고 삽입하려는 다른 코드 블록이 있으면 알려주십시오. 에 의해 그룹에 당신이 먼저 필요

+0

각 프로젝트에는 속한 "단위 이름"이 있습니다. 하나의 프로젝트에 두 개 이상의 프로젝트가 속할 수 있습니다. 그래서 그것을 그룹화하고 싶습니다. @Paaz –

답변

0

당신의 문 :

foreach(var unitGroup in Model.Projects.GroupBy(g => g.tbl_Unit.Name)) 
{ 
    //...your MVC markup here 
} 

지금 당신이 actualy 당신이 프로젝트를위한 마크 업을 생성 할 또 다른 foreach 루프에 넣어 필요로 마크 업을 변경해야합니다.

이렇게 뭔가 simillar이에요. 나는 당신의 모델과 매우 familliar 아니에요 그러나 이것은 뒤에 일반적인 생각해야으로

<div class="ProjectPartialBody" data-id="@item.ID"> 
<div class="portlet box blue"> 
    <div class="portlet-title"> 
     <div class="caption"> 
      <span><i class="glyphicon glyphicon-asterisk"></i> @item.tbl_Unit.Name</span> 
     </div> 
     <div class="tools"> 
      <a href="#" class="collapse"> </a> 
     </div> 
     <div class="actions"> 
      <a href="@Url.Action("Details", "Project", new {ID=item.ID })" class="btn btn-circle default">Details</a> 
     </div> 
    </div> 
    @foreach(var project in unitGroup.ToList()) 
    { 
     <div class="portlet-body"> 
      <span><i class="fa fa-file"></i> @project.Name</span> 
      <span><i class="fa fa-calendar"> Contract Start and End Dates: @(project.ContractStartDate != null ? project.ContractStartDate.Value.ToString("dd.MM.yyyy") : "-")/@(project.ContractEndDate != null ? project.ContractEndDate.Value.ToString("dd.MM.yyyy") : "-")</i></span> 
      <div class="well"> 
       <div class="form-group"> 
        <label>Cash Completion Rate: %@project.CashCompletionRate</label> 
        <div class="progress progress-striped active"> 
         <div class="progress-bar progress-bar-info" role="progressbar" style="width: @(project.CashCompletionRate)%;"></div> 
        </div> 
       </div> 
      </div> 
      <div class="well"> 
       <div class="form-group"> 
        <label>Physical Completion Rate: %@project.PhysicalCompletionRate</label> 
        <div class="progress progress-striped active"> 
         <div class="progress-bar progress-bar-info" role="progressbar" style="width: @(project.PhysicalCompletionRate)%;"></div> 
        </div> 
       </div> 
      </div> 
     </div> 
    } 
</div> 
</div> 

여기에 약간의 오차가있을 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 시도해 볼게. –