1

MVC、JSON、およびLINQの非常に新しいプログラマー-JSONResultを返すActionResultを作成しました。

var formhistory = from p in _formsRepository.ReturnedForms
                          where p.DateAdded >= DateTime.Now.Date.AddDays(-15) && p.DateAdded <= DateTime.Now.Date
                          group p by new {p.Centre, p.Form, p.DateAdded}
                          into g
                          select new {
                                         g.Key.Centre,
                                         g.Key.Form,
                                         g.Key.DateAdded,
                                         Total = g.Sum(p => p.Quantity)
                                     };
return Json(formhistory, JsonRequestBehavior.AllowGet);

これにより、次のような優れたJSON結果セットが得られます。

[
  {"Centre":"Centre1","Form":"Advice","DateAdded":"\/Date(1331856000000)\/","Total":1067},
  {"Centre":"Centre1","Form":"Advice","DateAdded":"\/Date(1332460800000)\/","Total":808},
  {"Centre":"Centre1","Form":"Advice","DateAdded":"\/Date(1333062000000)\/","Total":559},
  {"Centre":"Centre1","Form":"Advice","DateAdded":"\/Date(1333666800000)\/","Total":1448}
]

私の質問はこれです:「フォーム」と「合計」の2つのキー/値ペアの代わりに1つだけ、つまり「フォーム」:「合計」を持つように、このJSON文字列を操作しようとしています。

これはおそらく非常に基本的な質問だと思いますが、誰かが私を正しい方向に向けることができますか?(ドアは別として!)

4

2 に答える 2

2
select new {
   g.Key.Centre,
   //g.Key.Form,
   g.Key.DateAdded,
   Form = g.Sum(p => p.Quantity)
}

値が前の「合計」であるキー「フォーム」を提供します。それはあなたが望むものですか?

于 2012-04-27T10:00:55.823 に答える
0

linq クエリの選択部分を変更します

   select new {  
      g.Key.Centre, 
      g.Key.DateAdded,  
      NewField =  String.Format("{0} - {1}",g.Key.Form,g.Sum(p => p.Quantity).ToString())                                     
     }; 

これで目的は解決すると思います。

于 2012-04-27T10:08:45.693 に答える