在我的MVC控制器中,我有以下linq查询(工作正常):
var result = from li in lineItems
join r in rates on li.something = r.something
select new
{
li.something
li.somethingElse
li.another
r.something
r.somethingElse
r.rate1
r.rate2
r.rate3
r.rate4
};
return JSON(result.ToList(), JsonRequestBehavior.AllowGet);
这样就可以生成一个平面对象。但是,我真正需要的是使费率成为自己的对象,更深一层,例如:
{
li.something
li.somethingElse
li.another
r.something
r.somethingElse
rates = {
{id = "1", value = r.rate1}
{id = "2", value = r.rate2}
{id = "3", value = r.rate3}
{id = "4", value = r.rate4}
}
}
我很难正确地使用C#语法来实现这一目标。硬编码id是好的。我将永远只有1 2 3和4的比率。
最佳答案
您可以将'rates'属性定义为对象的匿名数组,请参见以下示例以供参考。
{
li.something,
li.somethingElse,
li.another,
r.something,
r.somethingElse,
rates = new[]{
new {id = "1", value = r.rate1},
new {id = "2", value = r.rate2},
new {id = "3", value = r.rate3},
new {id = "4", value = r.rate4}
}
}