Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 如何将包含集合的匿名类型传递给Razor视图?_Linq_Razor_Anonymous Types - Fatal编程技术网

Linq 如何将包含集合的匿名类型传递给Razor视图?

Linq 如何将包含集合的匿名类型传递给Razor视图?,linq,razor,anonymous-types,Linq,Razor,Anonymous Types,我试图将一个匿名类型集合传递给Razor视图引擎,该集合本身就有一个类型集合 我使用以下扩展将动态对象传递给视图 public static ExpandoObject ToExpando(this object anonymousObject) { IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousObject); IDic

我试图将一个匿名类型集合传递给Razor视图引擎,该集合本身就有一个类型集合

我使用以下扩展将动态对象传递给视图

 public static ExpandoObject ToExpando(this object anonymousObject)
    {
        IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousObject);
        IDictionary<string, object> expando = new ExpandoObject();
        foreach (var item in anonymousDictionary)
            expando.Add(item);
        return (ExpandoObject)expando;
    }
但是,我未能通过更复杂的类型,例如:

mylinqstatement.GroupBy(y => y.foo).Select(x => 
     new { foo = x.key, bar = x.Select(y => y.b) }.ToExpando());
我已经多次尝试重写我展示的最简单的梯形图语句,但是我想要的属性y.b的值在视图中永远无法访问

 public static ExpandoObject ToExpando(this object anonymousObject)
    {
        IDictionary<string, object> anonymousDictionary = new RouteValueDictionary(anonymousObject);
        IDictionary<string, object> expando = new ExpandoObject();
        foreach (var item in anonymousDictionary)
            expando.Add(item);
        return (ExpandoObject)expando;
    }

任何帮助都将不胜感激。

我回答了自己的问题

mylinqstatement.GroupBy(y => y.foo).Select(x => new { foo = x.key, 
 bar = x.Select(y => new { someProperty = y.b) }.ToExpando())}.ToExpando());
在视图中

@foreach (var item in Model)
{ 
 @item.foo

 foreach (var barItem in item.bar)  //<--- notice it's not simply 'in item'. 
{
 @barItem .someProperty 
}

}

希望这能帮助某人避免不必要的头痛。

请将您的答案放在答案中,而不是作为对您问题的编辑。这会让我在几个小时内无法回答您的问题。我将在它解锁该能力时执行此操作。