2017-03-07 4 views
1

私は「traingingQ」は、すでに成功を収めているデータベース内のデータベースと「yearSummary」から「traingingQ」、しかし「yearSummary」の両方を表示したいコントローラビューに2つのモデルを表示しますか?

public ActionResult Search(int? id) 
{ 
    var yearSummary = from ti in db.TrainingRecordDBSet 
         join si in db.StaffInfoDBSet 
          on ti.StaffId equals si.StaffId 
         group ti by ti.Year into g 
         select new { 
          Year = g.Key, 
          SHour = g.Sum(ti => ti.Hour) 
         }; 

    var trainingQ = from t in db.TrainingRecordDBSet.Include("StaffInfo") 
        where t.StaffId == id orderby t.StaffId, t.Tid 
        select t; 

    var list = trainingQ.ToList(); 

    ViewBag.yearSummary = yearSummary; 

    return View(list); 
} 

に2つのモデルがあり、私はどのように表示するかわからない、私の親愛なる友人は私にどのように表示することができますか?ここ

は、ビューの符号化である、それは

@var yearSummary = (dynamic) ViewBag.yearSummary; 
@foreach (var item in Model) 
{ 
    <tr> 
     <td> 
      @*var yearSummary = (StaffInfoEditViewModel) ViewBag.yearSummary;*@ 
      @{ 
       Html.DisplayFor(modelItem => item.Shour); 
      } 
     </td> 
     <td> 
      @{ 
       Html.DisplayFor(modelItem => item.Shour); 
      } 
     </td> 
    </tr> 
} 
</table> 

はどうもありがとうございました作品はありません!

+0

あなたはVaRのyearSummaryリターンを何言うことができますか? – Usman

答えて

4

ビューは、必要なデータを保持するクラス(モデル)を作成します。..

public class SearchVM 
{ 
    public IEnumerable<YearSummary> YearSummary { get; set; } 
    public IEnumerable<TrainingQ> Training { get; set; } 
} 

public ActionResult Search(int? id) 
{ 
    var model = new SearchVM 
    { 
     YearSummary = (from ti in db.TrainingRecordDBSet 
         join si in db.StaffInfoDBSet 
          on ti.StaffId equals si.StaffId 
         group ti by ti.Year into g 
         select new { 
          Year = g.Key, 
          SHour = g.Sum(ti => ti.Hour) 
         }) 
     .AsEnumerable() 
     .Select(ys => new YearSummary { Year = ys.YEar, SHour = ys.Shour {) 
     .ToList(), 

     TrainingQ = (from t in db.TrainingRecordDBSet.Include("StaffInfo") 
        where t.StaffId == id orderby t.StaffId, t.Tid 
        select t) 
     .ToList() 
    }; 

    return View(model); 
} 
+0

非常にありがとうございます!あなたはとても親切です! ^^ !! –

+0

^^ !!ビューでデータを使用するにはどうすればいいのでしょうか –

関連する問題