0

これはコントローラーの私の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);

私のビューでこの選択を表示するにはどうすればよいですか?

4

2 に答える 2

1

匿名オブジェクトのコレクションを構築しているようです。あなたがすべきことは、ViewModelを作成し、射影部分を更新してLINQクエリで使用することです。匿名アイテムのリストを返す代わりに、viewmodel クラス インスタンスのリストを返すようにします。

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>

}
于 2013-03-13T20:18:46.357 に答える
0

モデルをビューにバインドし、リストまたは列挙可能なプロパティをモデルに追加します。その後、ビューで列挙可能なものを直接 foreach し、定義された HTML 構造内の各項目をレンダリングできます。

モデルが匿名型の場合、ViewBag/ViewData を使用して結果を保存できます。

于 2013-03-13T20:12:07.290 に答える