2017-03-07 1 views
1

나는보기에 두 개의 모델을 표시 하시겠습니까?

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); 
} 

내가 "traingingQ는"이미 성공 데이터베이스와 "yearSummary"데이터베이스에서 "traingingQ"모두 표시 할 컨트롤러의 두 모델을 가지고 있지만 "yearSummary" 나는보기에 어떻게 보여줄지 모르겠다. 친애하는 친구들이 나에게 어떻게 할 수 있는지 보여줄 수 있을까?

여기에 뷰의 코드이며, 그되지

@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

^^ !! 보기에서 데이터를 어떻게 사용할 수 있는지 알 수 있습니까? –

관련 문제