2017-10-20 16 views
0

私はMVCで新しくなりました。このページでは、私はループで "ユニット名"に属するプロジェクトをリストアップします。そして、私がしたいこと:同じ「ユニット名」に属するプロジェクトをグループ化したいと思います。各プロジェクトには、それが属する「ユニット名」があります。 1つのユニットに属する複数のプロジェクトが存在する可能性があります。だから私はそれをグループ化したい。次のようにMVCでLINQを使ったグループ化/ GROUP BY

マイ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

各プロジェクトには、それが属する「ユニット名」があります。 1つのユニットに属する複数のプロジェクトが存在する可能性があります。だから私はそれをグループ化したい。 @Paaz –

答えて

0

あなたの文の中でグループへの最初の必要性:

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

は今、あなたはactualyあなたがプロジェクトのためのマークアップを生成する別のforeachループに配置する必要があるだろうとして、マークアップを変更する必要があります。

だから何かこれに類似しています。私はあなたのモデルと非常に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

答えてくれてありがとう。私はそれを試してみます。 –