2017-04-20 3 views
0

면도기 뷰에서 동적 (익명 개체) 목록을 사용하고 있습니다.표시 목록 <dynamic> with Razor

컨트롤러 코드 :

var res = (from c in _context.DM_Suivi_Us_Servis 
         group c by new { c.designation_magasin,c.designation_uf} into g 
         select new 
         { 
          g.Key.designation_magasin, 
          g.Key.designation_uf, 
          sum = g.Sum(c => c.nbr_us_servis), 
         }).ToList(); 

return View(res); 

보기 페이지 (면도기보기) :

@model IEnumerable<dynamic> 
@foreach (var item in Model) 
{ 
    <tr> 
     <td>@item.ToString()</td> 
    </tr> 
} 

표시이 결과 :

 
{ designation_magasin = CO3, designation_uf = NRG, sum = 65 } 
{ designation_magasin = INC, designation_uf = NRG, sum = 0 } etc.. 

하지만 각 항목의 속성을 표시 할 때 :

@foreach (var item in Model) 
{ 
    <tr> 
     <td>@item.sum</td> 
     <td>@item.designation_uf</td> 
     <td>@item.designation_magasin</td> 
    </tr> 
} 

나는이 다음과 같은 오류를받을

Error Screenshot

+1

이러한 3 가지 속성으로보기 모델을 만들고보기 모델의 컬렉션에 쿼리를 투영하고보기 모델을보기로 되 돌리십시오. –

+5

그냥보기 모델을 만들고 게으르지 마십시오 – Milney

+0

안녕하세요, 대답 해주세요. 이미 새로운 ViewModel을 만들려고했지만,이 메서드를 다른 ViewModel에서 자주 사용하므로 Anonymose 개체를 사용하는 것이 더 좋습니다. –

답변

0

새로운 뷰 모델 만들기 :보기

var res = (from c in _context.DM_Suivi_Us_Servis 
      group c by new { c.designation_magasin, c.designation_uf } into g 
      select new YourName 
      { 
       DesignationMagasin= g.Key.designation_magasin, 
       DesignationUf= g.Key.designation_uf, 
       SumServis= g.Sum(c => c.nbr_us_servis), 
      }).ToList(); 

추가 투사에게

public class YourName 
{ 
    public string DesignationMagasin { get; set; } 
    public string DesignationUf { get; set; } 
    public int SumServis { get; set; } 
} 

를 사용 @model List<YourName>

Here MVC에 대해 자세히 알아보십시오.

+0

안녕하십니까, 100 % 작동한다고 대답 해 주셔서 감사합니다.하지만 많은 ViewModels를 사용하게되어 Anonymose Type을 사용하는 것이 더 좋습니다. –