2016-03-01 50 views
-1

正確顯示數據我有一個ViewBag在我的控制器巫包含LINQ的項目列表,我創建了一個Foreach循環在我看來,創建基於Viwbag的數據表,但我得到「系統。 Web.Mvc.SelectListItem」爲每個項目在我的循環ViewBag不上查看

控制器Viewbag代碼:

foreach (var item in db.Pos.GroupBy(a => a.Pla).Select(p => new 
           { 
            Pla = p.Key, 
            Pdv = p.Select(a => a.Pdv).FirstOrDefault(), 
            Nombre = p.Select(a => a.Descripcion).FirstOrDefault(), 
            Rid = p.Select(a => a.Rid).FirstOrDefault(), 
            Quantity = p.Sum(q => q.Cantidad), 
            Total = p.Sum(x => x.Total), 
            Fecha = p.Select(a => a.Fecha).FirstOrDefault() 
           })) 
     { 
      listapop.Add(item.Pdv); 
      listapop.Add(item.Pla); 
      listapop.Add(item.Nombre); 
      listapop.Add(item.Rid); 
      listapop.Add(item.Quantity.ToString()); 
      listapop.Add(item.Total.ToString()); 
      listapop.Add(item.Fecha.ToString()); 
     } 
     var grupopopularidad = new SelectList(listapop.ToList()); 
     ViewBag.GroupPops = grupopopularidad; 

和MI查看錶:

第3210

+0

GroupPops指的SelectList,當你重複它,你得到SelectListItems,通常用於填充下拉菜單。也許你應該通過viewbag傳遞字符串列表?或者更好的是,使強類型的視圖,並通過它通過模型.. – juunas

回答

1

第一件事,作爲@juunas表示,SelectList用於創建下拉菜單,可能不是你想要的,如果你打算將數據輸出到一個表來使用的。只需將IEnumerable或List發送到ViewBag。

其次,您在th元素中顯示@item,而您可能意思是將它放在td元素中。

至於其他的Razor視圖無法創建所有你需要顯示您的項目屬性td元素。因此,當您引用對象時,您只是獲取對象類型。您需要明確地添加它們以及自己調用屬性以使它們以您想要的方式顯示在表格中。

<table> 
    <thead> 
     <tr> 
      <th>Punto de Venta</th> 
      <th>Platillo</th> 
      <th>Nombre</th> 
      <th>Turno</th> 
      <th>Cantidad</th> 
      <th>Ingresos</th> 
      <th>Fecha</th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var item in ViewBag.GroupPops) 
     { 
      <tr> 
       <td>@item.Pdv</td> 
       <td>@item.Pla</td> 
       <td>@item.Nombre</td> 
       <td>@item.Rid</td> 
       <td>@item.Quantity.ToString()</td> 
       <td>@item.Total.ToString()</td> 
       <td>@item.Fecha.ToString()</td> 
      </tr>  
     } 
    </tbody> 
</table> 
+0

感謝anwser它的工作很好,而是我用我的基於Viewbag模型爲用戶recomendations –

+0

很高興我能幫助!我也同意使用模型而不是ViewBag。我沒有提出這個建議的唯一原因是我試圖不對你的代碼做太多的假設。 – Jaquez

1

一般建議,先試着先鑄造ViewBag.GroupPops as SelectList。它將幫助您在編譯時瞭解您正在使用的對象的什麼type。話雖如此,我完全同意@Jaquez,對這種情況使用List<T>