2013-03-13 70 views
0

通過LINQ這是我的LINQ在控制器如何從以查看

List<ProfitsModel> prof = new List<ProfitsModel>(); 

      var categories = 
       from p in prof 
       group p by p.IdCategory.Name into g 
       select new { Category = g.Key, TotalUnitsInStock = g.Sum(p => p.Value) }; 

      return View(categories); 

怎麼看在我看來,這個選擇?

+0

如果你的看法是強類型,'Model',否則'ViewBag'的集合。 – jrummell 2013-03-13 20:10:46

+0

你試圖將匿名類型傳遞給你的視圖。沒關係。可能的重複:http://stackoverflow.com/questions/223713/can-i-pass-an-anonymous-type-to-my-asp-net-mvc-view – 2013-03-13 20:10:51

+0

你的利潤模型是什麼樣的?你爲什麼要創建一個「教授」名單,並對此無所作爲? – 2013-03-13 20:20:19

回答

0

將模型綁定到視圖並向模型添加列表或可枚舉屬性。然後,您可以直接在視圖中對枚舉進行foreach,並在定義的HTML結構中呈現每個項目。

如果您的模型是匿名類型,那麼您可以使用ViewBag/ViewData來存儲結果。

+0

@model的IEnumerable 這是我的觀點,但如何顯示LINQ – Krasimir 2013-03-13 20:17:06

1

看起來像你的建築集合匿名對象。你應該做的是創建一個ViewModel並通過更新投影部分在你的LINQ查詢中使用它。所以這不是返回匿名的項目列表,它返回您的視圖模型類的實例

public class StockDetail 
{ 
    public string CategoryName { set;get;} 
    public int TotalItems { set;get;} 
} 

現在,在您的GET操作方法的列表,更新LINQ表達的突出部分,結果裝入的StockDetail列表

public ActionResult GetCategories() 
{ 
    List<ProfitsModel> prof =GetCollectionOfProfitsModelFromSomewhere(); 
    var items= from p in prof 
       group p by p.IdCategory.Name into g select new StockDetail 
        { Category = g.Key, TotalUnitsInStock = g.Sum(p => p.Value) }; 
    return View(items); 
} 

讓您的視圖強類型來StockDetails

@model List<StockDetail> 

@foreach(item in Model) 
{ 
    <p>@item.Category </p> 
    <p>@item.TotalUnitsInStock.ToString()</p> 

} 
+0

的我不明白我應該在控制器後,我讓視圖模型 – Krasimir 2013-03-13 20:23:10

+0

結果@ user2026573:返回集合以查看。看到我更新的答案。 – Shyju 2013-03-13 20:25:50