2017-04-20 4 views
0

私は剃刀ビューでダイナミック(匿名オブジェクト)のリストを使用しています。表示リスト<dynamic>剃毛あり

コントローラコード:

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

この次のエラーが表示され、新しいビューモデルを作成します。@model List<YourName>

を追加ビューで

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

と投影を使用

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

Here MVCの詳細をご覧ください。

+0

こんにちは、それは100%働いている回答をありがとうが、私は多くのViewModelsを使用するので、Anonymoseタイプを使用する方が良いですか? –

関連する問題